python绘图库有很多,底层的就是matplotlib,另外还有基于matplotlib的更方便,代码可读性更强的库,比如seaborn、plotnine等。各个库之间的对比:
matplotlib
在python下一般使用matplotlib包下的pyplot,所以通常import matplotlib.pyplot as plt方便使用它的绘图函数。下面仅记录matplotlib3.2.0之后的版本。
通用函数
plt.show()
显示绘图窗口。
plt.figure()
创建绘图新窗口并传给fig:
fig = plt.figure()
fig能使用下面绘图、创建子图等函数。不创建新窗口直接plt.function()也能绘图,默认一个窗口。
fig.add_subplot()
给窗口添加子图像,参数有三个,分别是子图像的行、列、索引。两种使用方式:
ax =fig.add_subplot(numbRow, numbCol, plotNum)
ax= fig.add_subplot(111)
前一种是一般的用逗号隔开,明确三个参数。后一种是三个整数参数直接合成一个整数传入,这要求这个整数只能是3位的,这样才能唯一确定用户传入的参数。(比如223,就是把图像划分成2*2的格子,添加一个子图像在第三个格子里)
plt.imsave()
用于保存图像,因为源代码中没有提示,很容易因为传参顺序而出错。用法如下:
plt.imsave(name,img)#先传名字再传img数组
图例
为图像添加图例,在画图函数中添加label属性就行。如:
ax.plot(X,Y,label = '图例')
然后使用legend()函数显示所有的图例,它可以设置图例的位置等参数:
ax.legend(loc='best') #看这个介绍https://blog.csdn.net/qq_35240640/article/details/89478439
显示中文(不然可能乱码):
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
图像标题
ax.set_title('aaa',fontsize=12,color='r')
坐标轴设置
ax.set_xlim([-2, 2])#设置x坐标轴范围
ax.set_ylim([-2, 2])#设置y坐标轴范围
ax.set_xlabel('xxxxxxxxxxx')#设置x坐标轴名称
ax.set_ylabel('yyyyyyyyyyy')#设置y坐标轴名称
ticks= np.arange(-2, 2, 0.3)
ax.set_xticks(ticks)#设置x轴刻度
ax.set_yticks(ticks)#设置y轴刻度
ax.axis('scaled')#设置坐标轴宽高等比于x、y范围
ax.axis('image')#类似于scaled,暂时没发现区别
ax