📌  相关文章
📜  Python中的 Matplotlib.figure.Figure.get_constrained_layout()(1)

📅  最后修改于: 2023-12-03 15:19:24.851000             🧑  作者: Mango

Python中的 Matplotlib.figure.Figure.get_constrained_layout()

在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。

Reference