matplotlib.layout_engine
#
在Figure
中布局元素的类。
Figure具有一个layout_engine
属性,该属性保存此处定义的LayoutEngine
子类(如果为None则表示无布局)。在绘制时,会调用figure.get_layout_engine().execute()
,其目标通常是重新排列Figure上的Axes以生成令人愉悦的布局。这类似于draw
回调,但有两个不同点。首先,在打印时,我们会禁用布局引擎以进行最终绘制。其次,在创建Figure时了解布局引擎非常有用。特别是,不同布局引擎的colorbar制作方式不同(出于历史原因)。
Matplotlib内置了两种布局引擎
TightLayoutEngine
是第一个添加到Matplotlib的布局引擎。另请参阅紧凑布局指南。ConstrainedLayoutEngine
更为现代,通常能提供更好的结果。另请参阅约束布局指南。
第三方可以通过子类化LayoutEngine
来创建自己的布局引擎。
- class matplotlib.layout_engine.ConstrainedLayoutEngine(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=(0, 0, 1, 1), compress=False, **kwargs)[source]#
实现
constrained_layout
几何管理。详见约束布局指南。初始化
constrained_layout
设置。- 参数:
- h_pad, w_padfloat
Axes元素周围的填充(英寸)。默认为
rcParams["figure.constrained_layout.h_pad"]
(默认值:0.04167
)和rcParams["figure.constrained_layout.w_pad"]
(默认值:0.04167
)。- hspace, wspacefloat
Figure中用于Axes之间空间的百分比。这些空间均匀分布在Axes之间的间隙中。对于三列布局,0.2的值表示每列之间有Figure宽度的0.1空间。如果h/wspace < h/w_pad,则使用填充。默认为
rcParams["figure.constrained_layout.hspace"]
(默认值:0.02
)和rcParams["figure.constrained_layout.wspace"]
(默认值:0.02
)。- rect4个浮点数的元组
在Figure坐标中执行约束布局的矩形(左、下、宽、高),每个值介于0-1之间。
- compressbool
是否移动Axes以消除它们之间的空白。这对于固定长宽比Axes的简单网格(例如图像网格)很有用。详见固定长宽比Axes的网格:"压缩"布局。
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用网格规范创建colorbar,则返回布尔值。
- set(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=None)[source]#
设置constrained_layout的填充。
- 参数:
- h_pad, w_padfloat
Axes元素周围的填充(英寸)。默认为
rcParams["figure.constrained_layout.h_pad"]
(默认值:0.04167
)和rcParams["figure.constrained_layout.w_pad"]
(默认值:0.04167
)。- hspace, wspacefloat
Figure中用于Axes之间空间的百分比。这些空间均匀分布在Axes之间的间隙中。对于三列布局,0.2的值表示每列之间有Figure宽度的0.1空间。如果h/wspace < h/w_pad,则使用填充。默认为
rcParams["figure.constrained_layout.hspace"]
(默认值:0.02
)和rcParams["figure.constrained_layout.wspace"]
(默认值:0.02
)。- rect4个浮点数的元组
在Figure坐标中执行约束布局的矩形(左、下、宽、高),每个值介于0-1之间。
- class matplotlib.layout_engine.LayoutEngine(**kwargs)[source]#
Matplotlib布局引擎的基类。
布局引擎可以在实例化时或随时通过
set_layout_engine
传递给Figure。一旦附加到Figure,布局引擎的execute
函数就会在绘制时被draw
调用,提供一个特殊的绘制时钩子。注意
但是,请注意布局引擎会影响colorbar的创建,因此
set_layout_engine
应在创建任何colorbar之前调用。目前,在操作Figure时会参考
LayoutEngine
类的两个属性engine.colorbar_gridspec
告诉Figure.colorbar
是否使用网格规范方法创建axes(参见
colorbar.make_axes_gridspec
)或不使用(参见colorbar.make_axes
);
engine.adjust_compatible
会阻止Figure.subplots_adjust
在与布局引擎不兼容时运行。
要实现自定义的
LayoutEngine
重写
_adjust_compatible
和_colorbar_gridspec
重写
LayoutEngine.set
以更新self._params用您的实现重写
LayoutEngine.execute
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用网格规范创建colorbar,则返回布尔值。
- class matplotlib.layout_engine.PlaceHolderLayoutEngine(adjust_compatible, colorbar_gridspec, **kwargs)[source]#
此布局引擎完全不调整Figure布局。
此
LayoutEngine
的目的是在用户移除布局引擎时充当占位符,以确保以后无法设置不兼容的LayoutEngine
。- 参数:
- adjust_compatible, colorbar_gridspecbool
允许PlaceHolderLayoutEngine镜像其正在替换的任何布局引擎的行为。
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用网格规范创建colorbar,则返回布尔值。
- class matplotlib.layout_engine.TightLayoutEngine(*, pad=1.08, h_pad=None, w_pad=None, rect=(0, 0, 1, 1), **kwargs)[source]#
实现
tight_layout
几何管理。详见紧凑布局指南。初始化tight_layout引擎。
- 参数:
- pad浮点型, 默认值: 1.08
图形边缘和子图边缘之间的填充,作为字体大小的一部分。
- h_pad, w_padfloat
相邻子图边缘之间的填充(高度/宽度)。默认为 pad。
- rect元组 (left, bottom, right, top),默认值: (0, 0, 1, 1)。
归一化Figure坐标中的矩形,子图(包括标签)将适应其中。
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用网格规范创建colorbar,则返回布尔值。