📅  最后修改于: 2023-12-03 15:19:24.851000             🧑  作者: Mango
在Matplotlib中,Figure是所有绘图组件的顶级容器。Figure实例包含着绘图中所有的Axes、图例、文本、标签等。为了更好地控制Figure中的布局,Matplotlib提供了get_constrained_layout()
方法。
get_constrained_layout()
方法可以自动调整Figure的子组件,以使它们相互之间的间距均匀,同时也可以防止子组件重叠。此功能是通过constrained_layout
参数控制的。当此参数为True时,将启用自动调整布局。
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 2)
fig.suptitle('Constrained Layout')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
ax.plot([1, 2, 3], [1, 2, 3])
plt.show()
这段代码将生成一个2x2的图形,每个Axes的标题为“Constrained Layout”。
如果我们想要自动调整布局,只需要在创建Figure实例时添加一个参数:
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, 2, constrained_layout=True)
fig.suptitle('Constrained Layout')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
ax.plot([1, 2, 3], [1, 2, 3])
plt.show()
这时,子图之间的间距被自动调整,图形的布局更好看并且更易读。
用户也可以通过set_constrained_layout_pads()
方法来手动调整子图之间的间距和padding。如果没有手动调整,则默认值为0.02。
fig.set_constrained_layout_pads(w_pad=0.1, h_pad=0.5, hspace=0.2, wspace=0.2)
上面这行代码将设置水平方向的padding为0.1、垂直方向的padding为0.5、水平方向的子图间隔为0.2,垂直方向的子图间隔为0.2。