matplotlib.layout_engine
#
用于在 Figure
中布局元素的类。
图形有一个 layout_engine
属性,该属性保存了在此定义的 LayoutEngine
的子类(或对于没有布局的情况为 None)。在绘制时,会调用 figure.get_layout_engine().execute()
,其目标通常是重新排列图形上的 Axes 以生成一个令人愉悦的布局。这类似于 draw
回调,但有两个区别。首先,在打印时,我们为最终绘制禁用了布局引擎。其次,在创建图形时了解布局引擎是有用的。特别是,由于历史原因,使用不同的布局引擎时,颜色条的制作方式不同。
Matplotlib 提供了两种布局引擎,TightLayoutEngine
和 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)[源代码][源代码]#
实现了
constrained_layout
几何管理。详情请参见 约束布局指南。初始化
constrained_layout
设置。- 参数:
- h_pad, w_pad浮动
Axes 元素周围的填充,单位为英寸。默认为
rcParams["figure.constrained_layout.h_pad"]
(default:0.04167
) 和rcParams["figure.constrained_layout.w_pad"]
(default:0.04167
)。- hspace, wspace浮动
用于分配给轴之间空间的图形比例。这些均匀分布在 Axes 之间的间隙中。对于三列布局,值为 0.2 将在每列之间留出 0.1 的图形宽度空间。如果 h/wspace < h/w_pad,则使用 pad 代替。默认为
rcParams["figure.constrained_layout.hspace"]
(default:0.02
) 和rcParams["figure.constrained_layout.wspace"]
(default:0.02
)。- rect由4个浮点数组成的元组
在图形坐标系中执行约束布局的矩形(左,底,宽,高),每个值从0到1。
- 压缩布尔
是否移动坐标轴以移除它们之间的空白。这对于固定纵横比的简单网格(例如图像网格)非常有用。请参见 固定纵横比轴的网格:“压缩”布局。
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用gridspec创建颜色条,则返回布尔值。
- set(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=None)[源代码][源代码]#
设置 constrained_layout 的填充。
- 参数:
- h_pad, w_pad浮动
Axes 元素周围的填充,单位为英寸。默认为
rcParams["figure.constrained_layout.h_pad"]
(default:0.04167
) 和rcParams["figure.constrained_layout.w_pad"]
(default:0.04167
)。- hspace, wspace浮动
用于分配给轴之间空间的图形比例。这些均匀分布在 Axes 之间的间隙中。对于三列布局,值为 0.2 将在每列之间留出 0.1 的图形宽度空间。如果 h/wspace < h/w_pad,则使用 pad 代替。默认为
rcParams["figure.constrained_layout.hspace"]
(default:0.02
) 和rcParams["figure.constrained_layout.wspace"]
(default:0.02
)。- rect由4个浮点数组成的元组
在图形坐标系中执行约束布局的矩形(左,底,宽,高),每个值从0到1。
- class matplotlib.layout_engine.LayoutEngine(**kwargs)[源代码][源代码]#
Matplotlib 布局引擎的基类。
布局引擎可以在实例化时传递给图形,或者在任何时候通过
set_layout_engine
传递。一旦附加到图形上,布局引擎的execute
函数会在绘制时被draw
调用,提供一个特殊的绘制时钩子。备注
然而,请注意布局引擎会影响颜色条的创建,因此在创建任何颜色条之前应调用
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_gridspec布尔
允许 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 引擎。
- 参数:
- 填充浮点数,默认值:1.08
图形边缘与子图边缘之间的填充,作为字体大小的分数。
- h_pad, w_pad浮动
相邻子图边缘之间的填充(高度/宽度)。默认为 pad。
- recttuple (左, 底, 右, 顶), 默认: (0, 0, 1, 1)。
子图(包括标签)将适配的归一化图形坐标中的矩形区域。
- property adjust_compatible#
如果布局引擎与
subplots_adjust
兼容,则返回布尔值。
- property colorbar_gridspec#
如果布局引擎使用gridspec创建颜色条,则返回布尔值。