Figure vs Axes
对象层次结构(object hierarchy.),是Matplotlib概念中一个重要的地方。
下图显示了这种对象层次结构,Figure相当于一张白纸——可称做画布,Axes则是画布中的一块区域。Axes下面又包括了一下绘图较小的对象,如刻度线、图例和文本等。
如下图所示一个Figure中包括两个Axes,每一个Axes又包括不同的曲线。
Matplotlib将其表现为图形解剖,而不是显式的层次结构:
plt.figure() vs plt.axes() vs plt.subplots()
plt.figure()返回Figure实例
plt.axes()返回Axes或其子类
plt.subplots()返回Figure实例和Axes(或一组axes)
在创建一个空白的画布时,建议使用:
fig,ax = plt.subplots()
之后就可以使用ax下面的方法对图像进行调整
plt.xxx vs ax.xxx
plt.plot()
→
\rightarrow
→ ax.plot()
plt.legend()
→
\rightarrow
→ ax.legend()
plt.xlabel()
→
\rightarrow
→ ax.set_xlabel()
plt.ylabel()
→
\rightarrow
→ ax.set_ylabel()
plt.xlim()
→
\rightarrow
→ ax.set_xlim()
plt.ylim()
→
\rightarrow
→ ax.set_ylim()
plt.title()
→
\rightarrow
→ ax.set_title()
在绘图时,使用ax.set()
函数一次性设置完比较好,如:
x = np.linspace(0, 10, 1000)
ax = plt.axes()
ax.plot(x, np.sin(x))
ax.set(xlim=(0, 10), ylim=(-2, 2),
xlabel='x', ylabel='sin(x)',
title='A Simple Plot');
参考链接
[1] matplotlib.pyplot.subplots
[4] Python Plotting With Matplotlib (Guide)