这篇文章同样以面向对象风格为主,介绍设置网格(grid)、图例(legend)、图片保存的方法。
这篇文章分以下部分来介绍:
1. 设置网格
2. 设置图例
3. 图片保存
1. 设置网格
网格与轴刻度相关,在坐标轴上有刻度的位置才能显示网格。所以这里以x轴的网格为例,先设置x轴刻度,再设置x轴网格。仍然使用面向对象风格,创建figure,创建axes,用axes画图,再调用axes模块里的函数,贴出一段基础代码
import matplotlib.pyplot as pltimport matplotlib.ticker as tickerx = [1,3,5,7]y = [4,9,6,8]# 创建figure,axes,并用axes画图figure = plt.figure()axes = figure.add_subplot(1,1,1)axes.plot(x,y,'o-r')# x轴主刻度的位置axes.xaxis.set_major_locator(ticker.FixedLocator([1,4,7]))# x轴小刻度的位置axes.xaxis.set_minor_locator(ticker.FixedLocator([2,3,5]))# x轴网格(这里只设置x轴的,y轴的同理)# 扩展参数:Line2D属性参数axes.xaxis.grid(visible=True,which='major', #主刻度网格#扩展参数:Line2D属性参数color='r' #主刻度网格设置成红色以便区分)axes.xaxis.grid(visible=True,which='minor' #小刻度网格#扩展参数:Line2D属性参数)plt.show()
axes.xaxis.grid()表示在axes的x轴上设置网格,which参数用于选择是主刻度的网格还是小刻度的网格。axis.grid()参数还包括Line2D属性参数。其余参数参考官网。
(axis.grid()函数完整参数参考官网:matplotlib.axis.Axis.grid — Matplotlib 3.5.2 documentation)
执行可以得到以下图片,图中已经注释x轴主刻度,x轴小刻度,x轴主刻度网格,x轴小刻度网格
如果不设置任何轴刻度,matplotlib会使用默认刻度,这时也可以用axes.grid()生成默认网格,效果如下
2. 设置图例
仍然使用面向对象风格,创建figure,创建axes,用axes画图,再调用axes模块里的函数,贴出一段基础代码
import matplotlib.pyplot as pltx = [1,3,5,7]y = [4,9,6,8]# 创建figure,axes,并用axes画图figure = plt.figure()axes = figure.add_subplot(1,1,1)axes.plot(x,y,'o-r',label='this is the legend') #注意设置label参数# 图例# 其他参数参考官网axes.legend(loc='upper left', #default: 'best'fontsize='medium', #也可以直接设置数字labelcolor='red',markerscale=1.0, #default: 1.0,图例上的标记相对于图上的标记的大小facecolor='pink', #图例的背景色edgecolor='blue' #图例的背景边框色) plt.show()
注意必须在axes.plot()函数中设置label参数,axes.legend()才能发挥作用。axes.legend()参数含义已经标注在下面的执行得到的图片中。其余参数参考官网。
(axes.legend()函数完整参数参考官网:matplotlib.axes.Axes.legend — Matplotlib 3.5.2 documentation)
执行可以得到以下图片,图中已经注释所设置的参数对应的效果
同样,上面的一段代码等效于(pyplot风格)
# pyplot函数用法
plt.legend(...)
3. 图片保存
这里指的是用代码实现图片保存,仍然使用面向对象风格,创建figure,创建axes,用axes画图,之后,添加函数figure.savefig(),例如figure.savefig(fname=r'C:\Users\ZXS\Desktop\fig.jpg'),fname参数表示图片保存路径,字符串前面的r表示字符串不进行转义。其余参数参考官网。
(figure.savefig()函数完整参数参考官网:matplotlib.figure — Matplotlib 3.5.2 documentation)
同样,figure.savefig()等效于(pyplot风格)
# pyplot函数用法
plt.savefig(...)