matplotlib.layout_engine#

用于在 Figure(图形)中布局元素的类。

图形具有一个 layout_engine 属性,该属性持有此处定义的 LayoutEngine 的子类(或为 None,表示无布局)。在绘图时,会调用 figure.get_layout_engine().execute(),其目的通常是重新排列图形上的 Axes(坐标轴)以生成美观的布局。这类似于 draw 回调,但有两点不同。首先,在打印时,我们会为最终绘图禁用布局引擎。其次,在创建图形时了解布局引擎很有用。特别是,由于历史原因,使用不同的布局引擎创建色标(colorbars)的方式会有所不同。

Matplotlib 有两个内置的布局引擎

第三方可以通过继承 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 创建色标。

execute(fig)[源码]#

执行约束布局并相应地移动和调整 Axes 的大小。

参数:
figFigure 执行布局的图形对象。
get()[源码]#

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

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 类有两个属性在操作图形时会被查询:

要实现自定义的 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_gridspecbool

允许 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 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 创建色标。

execute(fig)[源码]#

执行 tight_layout。

它会根据填充值决定子图参数,使 Axes 标签不会被其他标签和 Axes 遮盖。

参数:
figFigure 执行布局的图形对象。
get()[源码]#

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

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

设置紧凑布局的填充值。

参数:
pad浮点数

图形边缘和子图边缘之间的填充,作为字体大小的一部分。

w_pad, h_padfloat

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

rect元组 (left, bottom, right, top)

归一化图形坐标中的矩形,子图(包括标签)将放入其中。