这篇文章同样以面向对象风格为主,介绍设置网格(grid)、图例(legend)、图片保存的方法。
这篇文章分以下部分来介绍:
1. 设置网格
2. 设置图例
3. 图片保存
1. 设置网格
网格与轴刻度相关,在坐标轴上有刻度的位置才能显示网格。所以这里以x轴的网格为例,先设置x轴刻度,再设置x轴网格。仍然使用面向对象风格,创建figure,创建axes,用axes画图,再调用axes模块里的函数,贴出一段基础代码
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
x = [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 plt
x = [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(...)