您现在的位置是:首页 >技术教程 >plt、fig、axes、axis的含义网站首页技术教程
plt、fig、axes、axis的含义
简介plt、fig、axes、axis的含义
plt
import matplotlib.pyplot as plt
figure,axes与axis
如果将Matplotlib绘图和我们平常画画相类比,可以把Figure想象成一张纸(一般被称之为画布),Axes代表的则是纸中的一片区域(当然可以有多个区域,这是后续要说到的subplots),下面是一张更形象一点的图:
plt.plot()和ax.plot()有何区别,下面列出了两种用Matplotlib绘制图表的方式。
plt.figure()
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
# 第二种方式
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
plt.show()
可以看出,两种方式产生的结果完全一样。从第一种方式的代码来看,先生成了一个Figure画布,然后在这个画布上隐式生成一个画图区域进行画图。
第二种方式同时生成了Figure和axes两个对象,然后用ax对象在其区域内进行绘图
如果从面向对象编程(对理解Matplotlib绘图很重要)的角度来看,显然第二种方式更加易于解释,生成的fig和ax分别对画布Figure和绘图区域Axes进行控制,第一种方式反而显得不是很直观,如果涉及到子图零部件的设置,第二种方式显然会更易于使用。
subplot绘制多个子图
首先要有一个画布Figure,其次,需要有两个区域Axes(等价于两个子图subplot)来画图
# 生成画布和axes对象
# nrows=1和ncols=2分别代表1行和2列
fig,ax = plt.subplots(nrows=1,ncols=2)
因为这里有两个画图区域,所以ax对应的是一个列表,存储了两个Axes对象。
然后对两个对象进行绘制
ax[0].plot([1,2,3],[4,5,6])
ax[1].scatter([1,2,3],[4,5,6])
可以看出,一个Axes对象对应了一个subplot子图,这些个子图都是画在同一个画布Figure之上。
应用
具体绘制时:
1.首先创建画布
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(14,7))
2.我们在这个axes上画数据,因此就用ax.plot()来画
ax.plot([1,2,3],[4,5,6])
3.进行细节处理
设置xy轴标题,以及这个ax区域的标题
ax.set_title('Title',fontsize=18)
ax.set_xlabel('xlabel', fontsize=18,fontfamily = 'sans-serif',fontstyle='italic')
ax.set_ylabel('ylabel', fontsize='x-large',fontstyle='oblique')
对xy坐标轴进行设置
ax.grid(None, which='minor', axis='y') # 设置网格线
设置坐标轴tick和细节
start, end = ax.get_xlim() # 得到x轴的刻度的范围
ax.xaxis.set_ticks(np.arange(start, end+1, 1)) # 设置坐标轴的显示的刻度值只有0,1,2,3,4
ax.xaxis.set_tick_params(rotation=45, labelsize=18, colors='r') # 设置x轴刻度的标签的字号是18,倾斜角度为45度,颜色是红色
ax.yaxis.tick_right() # 将y轴刻度和刻度标签(如果存在)移动到轴的右侧。
最后进行显示
plt.show()
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。