您现在的位置是:首页 >技术教程 >plt、fig、axes、axis的含义网站首页技术教程

plt、fig、axes、axis的含义

pythonSuperman 2024-06-18 06:01:03
简介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()

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。