matplotlib.layout_engine#

用于在 Figure 中布局元素的类。

图形有一个 layout_engine 属性,该属性保存了在此定义的 LayoutEngine 的子类(或对于没有布局的情况为 None)。在绘制时,会调用 figure.get_layout_engine().execute(),其目标通常是重新排列图形上的 Axes 以生成一个令人愉悦的布局。这类似于 draw 回调,但有两个区别。首先,在打印时,我们为最终绘制禁用了布局引擎。其次,在创建图形时了解布局引擎是有用的。特别是,由于历史原因,使用不同的布局引擎时,颜色条的制作方式不同。

Matplotlib 提供了两种布局引擎,TightLayoutEngineConstrainedLayoutEngine。第三方可以通过子类化 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创建颜色条,则返回布尔值。

execute(fig)[源代码][源代码]#

执行 constrained_layout 并相应地移动和调整 Axes 的大小。

参数:
fig : 要执行布局的 Figure要进行布局的图形。
get()[源代码]#

返回布局引擎参数的副本。

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 类的两个属性:

要实现一个自定义的 LayoutEngine

  1. 覆盖 _adjust_compatible_colorbar_gridspec

  2. 重写 LayoutEngine.set 以更新 self._params

  3. 用你的实现覆盖 LayoutEngine.execute

property adjust_compatible#

如果布局引擎与 subplots_adjust 兼容,则返回布尔值。

property colorbar_gridspec#

如果布局引擎使用gridspec创建颜色条,则返回布尔值。

execute(fig)[源代码][源代码]#

在由 fig 给出的图形上执行布局。

get()[源代码][源代码]#

返回布局引擎参数的副本。

set(**kwargs)[源代码][源代码]#

设置布局引擎的参数。

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创建颜色条,则返回布尔值。

execute(fig)[源代码][源代码]#

什么都不做。

get()[源代码]#

返回布局引擎参数的副本。

set(**kwargs)[源代码]#

设置布局引擎的参数。

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创建颜色条,则返回布尔值。

execute(fig)[源代码][源代码]#

执行 tight_layout。

这将决定子图参数,给定填充,以确保轴标签不会被其他标签和轴覆盖。

参数:
fig : 要执行布局的 Figure要进行布局的图形。
get()[源代码]#

返回布局引擎参数的副本。

set(*, pad=None, w_pad=None, h_pad=None, rect=None)[源代码][源代码]#

设置 tight_layout 的填充。

参数:
填充浮动

图形边缘与子图边缘之间的填充,作为字体大小的分数。

w_pad, h_pad浮动

相邻子图边缘之间的填充(宽度/高度)。默认为 pad

rect元组 (左, 下, 右, 上)

子图(包括标签)将适配的归一化图形坐标中的矩形区域。