matplotlib.layout_engine#
用于在 Figure(图形)中布局元素的类。
图形具有一个 layout_engine 属性,该属性持有此处定义的 LayoutEngine 的子类(或为 None,表示无布局)。在绘图时,会调用 figure.get_layout_engine().execute(),其目的通常是重新排列图形上的 Axes(坐标轴)以生成美观的布局。这类似于 draw 回调,但有两点不同。首先,在打印时,我们会为最终绘图禁用布局引擎。其次,在创建图形时了解布局引擎很有用。特别是,由于历史原因,使用不同的布局引擎创建色标(colorbars)的方式会有所不同。
Matplotlib 有两个内置的布局引擎
TightLayoutEngine是 Matplotlib 添加的第一个布局引擎。另请参阅 紧凑布局指南 (Tight layout guide)。ConstrainedLayoutEngine更现代,通常能提供更好的结果。另请参阅 约束布局指南 (Constrained layout guide)。
第三方可以通过继承 LayoutEngine 来创建自己的布局引擎。
- class matplotlib.layout_engine.ConstrainedLayoutEngine(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=(0, 0, 1, 1), compress=False, **kwargs)[源码]#
实现
constrained_layout几何管理。详见 约束布局指南 (Constrained layout guide)。初始化
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
用于 Axes 之间间距的图形比例。这些比例均匀分布在 Axes 之间的空隙中。对于三列布局,0.2 的值意味着每列之间有 0.1 倍图形宽度的空间。如果 h/wspace 小于 h/w_pad,则改用填充值。默认为
rcParams["figure.constrained_layout.hspace"](默认:0.02)和rcParams["figure.constrained_layout.wspace"](默认:0.02)。- rect4 个浮点数的元组
在图形坐标系中执行约束布局的矩形区域 (left, bottom, width, height),每个值均在 0-1 之间。
- compressbool
是否移动 Axes 以消除它们之间的空白。这对于固定长宽比的简单 Axes 网格(例如图像网格)非常有用。请参阅 固定长宽比的 Axes 网格:“压缩”布局。
- property adjust_compatible#
返回一个布尔值,表示该布局引擎是否与
subplots_adjust兼容。
- property colorbar_gridspec#
返回一个布尔值,表示该布局引擎是否使用 gridspec 创建色标。
- set(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=None)[源码]#
设置约束布局的填充值。
- 参数:
- h_pad, w_padfloat
Axes 元素周围的填充(以英寸为单位)。默认为
rcParams["figure.constrained_layout.h_pad"](默认:0.04167)和rcParams["figure.constrained_layout.w_pad"](默认:0.04167)。- hspace, wspacefloat
用于 Axes 之间间距的图形比例。这些比例均匀分布在 Axes 之间的空隙中。对于三列布局,0.2 的值意味着每列之间有 0.1 倍图形宽度的空间。如果 h/wspace 小于 h/w_pad,则改用填充值。默认为
rcParams["figure.constrained_layout.hspace"](默认:0.02)和rcParams["figure.constrained_layout.wspace"](默认:0.02)。- rect4 个浮点数的元组
在图形坐标系中执行约束布局的矩形区域 (left, bottom, width, height),每个值均在 0-1 之间。
- class matplotlib.layout_engine.LayoutEngine(**kwargs)[源码]#
Matplotlib 布局引擎的基类。
可以在实例化图形时或随时通过
set_layout_engine将布局引擎传递给图形。一旦附加到图形,布局引擎的execute函数就会在绘图时被draw调用,从而提供一个特殊的绘图时钩子(hook)。注意
然而,请注意布局引擎会影响色标的创建,因此应在创建任何色标之前调用
set_layout_engine。目前,
LayoutEngine类有两个属性在操作图形时会被查询:engine.colorbar_gridspec告诉Figure.colorbar是否使用gridspec 方法(参见
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#
返回一个布尔值,表示该布局引擎是否使用 gridspec 创建色标。
- class matplotlib.layout_engine.PlaceHolderLayoutEngine(adjust_compatible, colorbar_gridspec, **kwargs)[源码]#
此布局引擎根本不调整图形布局。
此
LayoutEngine的目的是充当占位符,当用户移除布局引擎时,确保以后不能设置不兼容的LayoutEngine。- 参数:
- adjust_compatible, colorbar_gridspecbool
允许 PlaceHolderLayoutEngine 镜像其所替换的任何布局引擎的行为。
- property adjust_compatible#
返回一个布尔值,表示该布局引擎是否与
subplots_adjust兼容。
- property colorbar_gridspec#
返回一个布尔值,表示该布局引擎是否使用 gridspec 创建色标。
- class matplotlib.layout_engine.TightLayoutEngine(*, pad=1.08, h_pad=None, w_pad=None, rect=(0, 0, 1, 1), **kwargs)[源码]#
实现
tight_layout几何管理。详见 紧凑布局指南 (Tight layout guide)。初始化紧凑布局引擎。
- 参数:
- pad浮点型, 默认值: 1.08
图形边缘和子图边缘之间的填充,作为字体大小的一部分。
- h_pad, w_padfloat
相邻子图边缘之间的填充(高度/宽度)。默认为 pad。
- rect元组 (left, bottom, right, top),默认: (0, 0, 1, 1)。
归一化图形坐标中的矩形,子图(包括标签)将放入其中。
- property adjust_compatible#
返回一个布尔值,表示该布局引擎是否与
subplots_adjust兼容。
- property colorbar_gridspec#
返回一个布尔值,表示该布局引擎是否使用 gridspec 创建色标。