matplotlib基础

import numpy as np
import matplotlib.pyplot as plt

例1:绘制基本曲线

x = np.arange(0., 10, 0.2)  				#arange函数用于创建等差数组,与range函数非常类似,两者的区别仅仅是arange返回的是一个array()数据,而range返回的是list。
# print(x)
y1 = np.cos(x)  							#余弦,直角三角形中锐角的邻边与斜边的比值
y2 = np.sin(x)  							#正弦,直角三角形中锐角的对边与斜边的比值
y3 = np.sqrt(x) 							#平方根
# print(plt.rcParams) 						#matplotlib配置文件信息
plt.rcParams['figure.figsize'] = (12, 8)    #rcParams修改配置文件中的图片尺寸
plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-.', marker='.', label=r'$y=cos{x}$')
plt.plot(x, y2, color='green', linewidth=2.5, linestyle='--', marker='*', label=r'$y=sin{x}$')
plt.plot(x, y3, color='m', linewidth=3.5, linestyle=':', marker='x', label=r'$y=sqrt{x}$')
plt.legend(loc='best')  					#图例,区分图中包含的多种曲线或不同分类的数据,需先在plot中使用label参数才能显示

matplotlib基础

# 不使用参数 label, 直接使用如下命令生成图例
plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-.', marker='.')
plt.plot(x, y2, color='green', linewidth=2.5, linestyle='--', marker='*')
plt.plot(x, y3, color='m', linewidth=3.5, linestyle='-', marker='x')
plt.legend(['cos(x)', 'sin(x)', 'sqrt(x)'], loc='upper right')

matplotlib基础
例2:spines设置坐标轴

ax = plt.subplot(111)   							#设置一个空图
#隐藏顶部及右侧边框
ax.spines['right'].set_color('none')    			#set_color设置右边轴线为透明色
ax.spines['top'].set_color('none')

#设置坐标轴刻度及位置
ax.xaxis.set_ticks_position('bottom')   			#设置水平轴上的坐标轴刻度
ax.spines['bottom'].set_position(('data', 0.0))   	#set_position设置轴位置:'center' -> ('axes',0.5);'zero' -> ('data', 0.0)
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0.0))

matplotlib基础
例3:xlim方法设置坐标轴刻度取值范围

x = np.arange(0., 10, 0.2)
# print(x)
plt.xlim(x.min()*1.1, x.max()*1.1)  #x.min()*1.1=0, x.max()*1.1=10.78
plt.ylim(-1.5, 4.0)

matplotlib基础
例4:xticks、yticks方法设置x、y轴的刻度标签值,接例3

plt.rcParams['font.sans-serif'] = ['SimHei']		#解决汉字显示乱码问题
plt.xticks([0, 2, 4, 6, 8, 10], [r'零', r'two', r'four', r'six', r'8', r'10'])
plt.yticks([-1, 0, 1, 2, 3, 4], [r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])

matplotlib基础
例5:title方法设置标题,xlabel、ylabel方法设置坐标轴描述,接例4

plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$', fontsize=19)  	#'\'号两侧必须各有一个空格字符,否则无法解析,fontsize参数设置字体大小
plt.xlabel(r'$the \ input \ value \ of \ x$', fontsize=18, labelpad=18.8)   				#labelpad参数设置描述距离轴远近
plt.ylabel(r'$y=f(x)$', fontsize=18, labelpad=12)

matplotlib基础
例6:text方法设置文字描述和注解,接例5

plt.text(5, 2.9, r'$x \in [0.0, 10.0]$', color='k', fontsize=10)
plt.text(5, 0.8,r'$y \in [-1.0, 4.0]$', color='k', fontsize=10)

matplotlib基础
例7:annotate方法对某个点加注解,接例6

plt.scatter([8, ], [np.sqrt(8), ], 50, color='m')   			#使用散点图放大当前点
plt.annotate(r'$2\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909', arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))   #xy参数设置'被注解点'的坐标,xytext参数设置'注解文字'的位置,arrowprops参数设置注解文字与被注解点的连接方式

matplotlib基础
例8:曲线图

x = np.arange(-5, 5, 0.1)
y = x**2
plt.plot(x, y)
plt.grid(True)													#网格线开关

matplotlib基础
例9:灰度图(直方图)

x = np.random.normal(size=1000)									#正态分布
plt.hist(x, bins=10)											#bins参数设置分桶数目

matplotlib基础
例10:散点图

plt.rcParams['figure.figsize'] = (8, 8)
x = np.random.normal(size=1000)
y = np.random.normal(size=1000)
plt.scatter(x, y)

matplotlib基础
例11:箱式图

x = np.arange(-5, 5, 0.1)
plt.boxplot(x)

matplotlib基础
例12:饼状图

sort = ['Foxes', 'Cats', 'Dogs', 'Pigs']
sizes = [13, 30, 30, 37]
color = ['m', 'b', 'g', 'r']
explode = (0, 0.1, 0, 0)										#分离第2类,数值表示分离远近
plt.pie(sizes, explode=explode, labels=sort, colors=color, autopct='%1.1f%%', shadow=True)

matplotlib基础