fig.ax=plt.subplots(figsize=(10,4))
1.fig、ax区别
如果将Matplotlib
绘图和我们平常画画相类比,可以把Figure
想象成一张纸(一般被称之为画布),Axes
代表的则是纸中的一片区域(当然可以有多个区域,这是后续要说到的subplots
)。
两种绘图方式区别
plt.plot():先生成了一个Figure
画布,然后在这个画布上隐式生成一个画图区域进行画图。
ax.plot():第二种方式同时生成了Figure
和axes
两个对象,然后用ax
对象在其区域内进行绘图
第二种方式生成的fig
和ax
分别对画布Figure
和绘图区域Axes
进行控制,如果涉及到子图零部件的设置,用第一种绘图方式会很难受。
实际绘图时,也更推荐使用第二种方式。
2.理解fig,ax = plt.subplots()
fig,ax = plt.subplots()等价于:fig = plt.figure()加ax = fig.add_subplot(1,1,1)
fig, ax = plt.subplots(1,3) //这里的ax是一个array列表
fig, ax = plt.subplots(1,3,figsize=(10,4)) //后面可以设置大小
3.绘制阶梯图
from matplotlib import pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
x = ['1995','1996','1997','1998','1999','2000','2001','2002','2003','2004',
'2005','2006','2007','2008','2009']
y = [0.32,0.32,0.32,0.32,0.33,0.33,0.34,0.37,0.37,0.37,0.37,0.39,0.41,0.42,0.44]
fig,ax = plt.subplots(figsize=(10,4))
ax.step(x,y)
ax.set_title("美国邮费阶梯图")
ax.set_xlabel("年份")
ax.set_ylabel("邮费")
#添加数据标签
for i,j in zip(x,y):
ax.text(x=i,y=j+0.002,s=j) //x,y是坐标,s是显示的文本
plt.show()