matplotlib.transforms#

Inheritance diagram of matplotlib.transforms

Matplotlib 包含一个用于任意几何变换的框架,该框架用于确定画布上所有绘制元素的最终位置。

变换是由 TransformNode 对象组成的树,其具体值取决于其子节点。当子节点的内容发生变化时,其父节点会自动失效。下一次访问失效的变换时,它会重新计算以反映这些变化。这种失效/缓存方法防止了变换的不必要重新计算,并有助于提高交互性能。

例如,这里是一个用于将数据绘制到图表中的变换树的图示:

../_images/transforms.png

该框架可用于仿射和非仿射变换。然而,为了速度,我们希望尽可能使用后端渲染器来执行仿射变换。因此,可以仅对一组数据执行变换的仿射或非仿射部分。仿射变换总是假定在非仿射变换之后发生。对于任何变换:

full transform == non-affine part + affine part

后端不需要自己处理非仿射变换。

有关如何使用转换的示例,请参阅教程 变换教程

class matplotlib.transforms.Affine2D(matrix=None, **kwargs)[源代码][源代码]#

基类:Affine2DBase

一个可变的二维仿射变换。

从3x3的numpy浮点数数组初始化一个仿射变换:

a c e
b d f
0 0 1

如果 matrix 为 None,则使用单位变换进行初始化。

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

将底层矩阵重置为单位变换。

static from_values(a, b, c, d, e, f)[源代码][源代码]#

从给定的值创建一个新的 Affine2D 实例:

a c e
b d f
0 0 1

.

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

获取基础变换矩阵作为一个 3x3 数组:

a c e
b d f
0 0 1

.

rotate(theta)[源代码][源代码]#

将旋转(以弧度为单位)添加到此变换中。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

rotate_around(x, y, theta)[源代码][源代码]#

在点 (x, y) 处添加一个旋转(以弧度为单位)。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

rotate_deg(degrees)[源代码][源代码]#

在此变换中添加一个旋转(以度为单位)。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

rotate_deg_around(x, y, degrees)[源代码][源代码]#

在点 (x, y) 处添加一个旋转(以度为单位)。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

scale(sx, sy=None)[源代码][源代码]#

添加一个刻度。

如果 sy 为 None,则在 xy 方向上应用相同的缩放比例。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

set(other)[源代码][源代码]#

从另一个 Affine2DBase 对象的冻结副本设置此变换。

set_matrix(mtx)[源代码][源代码]#

从3x3数组设置底层变换矩阵:

a c e
b d f
0 0 1

.

skew(xShear, yShear)[源代码][源代码]#

原地添加一个倾斜。

xShearyShear 分别是沿 x 轴和 y 轴的剪切角度,以弧度为单位。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

skew_deg(xShear, yShear)[源代码][源代码]#

原地添加一个倾斜。

xShearyShear 分别是沿 x 轴和 y 轴的剪切角度,以度为单位。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

translate(tx, ty)[源代码][源代码]#

添加一个翻译。

返回 self,因此该方法可以轻松地与更多对 rotate()rotate_deg()translate()scale() 的调用链接起来。

class matplotlib.transforms.Affine2DBase(*args, **kwargs)[源代码][源代码]#

基类:AffineBase

所有二维仿射变换的基类。

2D 仿射变换使用 3x3 numpy 数组进行操作:

a c e
b d f
0 0 1

此类提供只读接口。对于可变的二维仿射变换,请使用 Affine2D

这个类的子类通常只需要重写构造函数和 get_matrix 方法,该方法生成一个自定义的 3x3 矩阵。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

has_inverse = True#

如果此变换有对应的逆变换,则为真。

input_dims = 2#

此变换的输入维度数量。必须在子类中用整数重写。

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

返回相应的逆变换。

它持有 x == self.inverted().transform(self.transform(x))

此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。

property is_separable#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

output_dims = 2#

此变换的输出维度数量。必须在子类中用整数重写。

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

(a, b, c, d, e, f) 元组的形式返回矩阵的值。

transform_affine(values)[源代码][源代码]#

仅对给定数组值应用此变换的仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常是一个空操作。在仿射变换中,这等同于 transform(values)

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

class matplotlib.transforms.AffineBase(*args, **kwargs)[源代码][源代码]#

基类:Transform

所有任意维度仿射变换的基类。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

获取此变换的仿射部分。

is_affine = True#
transform(values)[源代码][源代码]#

在给定的 values 数组上应用此转换。

参数:
类似数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_affine(values)[源代码][源代码]#

仅对给定数组值应用此变换的仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常是一个空操作。在仿射变换中,这等同于 transform(values)

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_non_affine(values)[源代码][源代码]#

仅应用此变换的非仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等同于 transform(values)。在仿射变换中,这始终是一个空操作。

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_path(path)[源代码][源代码]#

将变换应用于 Path 路径,返回一个新的 Path

在某些情况下,此变换可能会在原本为线段的路径中插入曲线。

transform_path_affine(path)[源代码][源代码]#

将此变换的仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

transform_path_non_affine(path)[源代码][源代码]#

将此变换的非仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

class matplotlib.transforms.AffineDeltaTransform(transform, **kwargs)[源代码][源代码]#

基类:Affine2DBase

用于转换点对之间位移的转换包装器。

此类旨在用于转换点对之间的位移(“位置增量”)(例如,作为 Collectionoffset_transform):给定一个变换 t,使得 t = AffineDeltaTransform(t) + offsetAffineDeltaTransform 满足 AffineDeltaTransform(a - b) == AffineDeltaTransform(a) - AffineDeltaTransform(b)

这是通过将变换矩阵的偏移分量强制设为零来实现的。

自3.3版本以来,此类为实验性质,API可能会发生变化。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

获取此变换的仿射部分的矩阵。

pass_through = True#

如果 pass_through 为 True,所有祖先都将始终被无效化,即使 'self' 已经无效。

class matplotlib.transforms.Bbox(points, **kwargs)[源代码][源代码]#

基类:BboxBase

一个可变的边界框。

示例

从已知边界创建

默认构造函数接受边界“点” [[xmin, ymin], [xmax, ymax]]

>>> Bbox([[1, 1], [3, 7]])
Bbox([[1.0, 1.0], [3.0, 7.0]])

或者,可以从展平的点数组创建一个Bbox,即所谓的“范围” (xmin, ymin, xmax, ymax)

>>> Bbox.from_extents(1, 1, 3, 7)
Bbox([[1.0, 1.0], [3.0, 7.0]])

或从“边界” (xmin, ymin, width, height) 中获取。

>>> Bbox.from_bounds(1, 1, 2, 6)
Bbox([[1.0, 1.0], [3.0, 7.0]])

从点集合创建

用于累积 Bbox 的“空”对象是空 Bbox,它代表空集的占位符。

>>> Bbox.null()
Bbox([[inf, inf], [-inf, -inf]])

向空边界框添加点将为您提供这些点的边界框。

>>> box = Bbox.null()
>>> box.update_from_data_xy([[1, 1]])
>>> box
Bbox([[1.0, 1.0], [1.0, 1.0]])
>>> box.update_from_data_xy([[2, 3], [3, 2]], ignore=False)
>>> box
Bbox([[1.0, 1.0], [3.0, 3.0]])

设置 ignore=True 相当于从空的边界框重新开始。

>>> box.update_from_data_xy([[1, 1]], ignore=True)
>>> box
Bbox([[1.0, 1.0], [1.0, 1.0]])

警告

建议始终明确指定 ignore。如果没有指定,ignore 的默认值可以随时被有权访问你的 Bbox 的代码更改,例如使用 ignore 方法。

``null`` bbox 的属性

备注

Bbox.null() 的当前行为可能会让人感到意外,因为它并不具备“空集”的所有属性,因此从数学意义上讲,它并不像一个“零”对象那样表现。我们可能会在未来对此进行更改(并有一个弃用期)。

空边界框是交集的单位元

>>> Bbox.intersection(Bbox([[1, 1], [3, 7]]), Bbox.null())
Bbox([[1.0, 1.0], [3.0, 7.0]])

除了与自身的情况外,它返回整个空间。

>>> Bbox.intersection(Bbox.null(), Bbox.null())
Bbox([[-inf, -inf], [inf, inf]])

包含 null 的联合将始终返回完整空间(而不是其他集合!)

>>> Bbox.union([Bbox([[0, 0], [0, 0]]), Bbox.null()])
Bbox([[-inf, -inf], [inf, inf]])
参数:
: ndarrayndarray

一个形式为 [[x0, y0], [x1, y1]] 的 (2, 2) 数组。

property bounds#

返回 (x0, y0, 宽度, 高度)。

static from_bounds(x0, y0, width, height)[源代码][源代码]#

x0, y0, widthheight 创建一个新的 Bbox

widthheight 可以是负数。

static from_extents(*args, minpos=None)[源代码][源代码]#

leftbottomrighttop 创建一个新的 Bbox。

*y*轴向上增加。

参数:
左, 底, 右, 顶float

边界框的四个范围。

minpos浮点数或无

如果提供了这个值,Bbox 将设置一个最小正值。这在处理对数刻度和其他导致负边界产生浮点错误的刻度时非常有用。

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

参与转换树并需要使其父级无效或被无效化的任何事物的基类。这包括实际上不是转换的类,例如边界框,因为某些转换依赖于边界框来计算它们的值。

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

获取边界框的点作为一个形式为 [[x0, y0], [x1, y1]] 的数组。

ignore(value)[源代码][源代码]#

设置是否应忽略框的现有边界,以便后续调用 update_from_data_xy()

布尔
property intervalx#

定义边界框的 x 坐标对。

这不能保证从左到右排序。

property intervaly#

定义边界框的一对 y 坐标。

这不能保证从下到上排序。

property minpos#

Bbox 中在两个方向上的最小正值。

这在处理对数刻度和其他负边界导致浮点错误的刻度时很有用,并将被用作最小范围,而不是 p0

property minposx#

Bbox 内 x 方向上的最小正值。

这在处理对数刻度和其他负边界导致浮点错误的刻度时非常有用,并将被用作最小 x 范围,而不是 x0

property minposy#

Bbox 内 y 方向上的最小正值。

这在处理对数刻度和其他负边界导致浮点错误的刻度时非常有用,并将被用作最小 y 范围,而不是 y0

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

返回自初始化以来边界框是否已更改。

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

返回自初始化以来 x 轴限制是否已更改。

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

返回自初始化以来 y 轴限制是否已更改。

static null()[源代码][源代码]#

从 (inf, inf) 到 (-inf, -inf) 创建一个新的空 Bbox

property p0#

定义边界框的第一对 (x, y) 坐标。

这并不保证是左下角(为此,请使用 min)。

property p1#

定义边界框的第二对 (x, y) 坐标。

这并不保证是右上角(为此,请使用 max)。

set(other)[源代码][源代码]#

从另一个 Bbox 的“冻结”边界设置此边界框。

set_points(points)[源代码][源代码]#

直接从形式为 [[x0, y0], [x1, y1]] 的数组中设置边界框的点。由于此方法主要用于内部使用,因此不执行错误检查。

static unit()[源代码][源代码]#

从 (0, 0) 到 (1, 1) 创建一个新的单元 Bbox

update_from_data_x(x, ignore=None)[源代码][源代码]#

基于传入的数据更新 Bbox 的 x 轴边界。更新后,边界将具有正的 宽度,并且 x0 将是最小值。

参数:
xndarray

x 值的数组。

忽略bool, 可选
  • True 时,忽略 Bbox 的现有边界。

  • False 时,包含 Bbox 的现有边界。

  • None 时,使用传递给 ignore() 的最后一个值。

update_from_data_xy(xy, ignore=None, updatex=True, updatey=True)[源代码][源代码]#

基于传入的 xy 坐标更新 Bbox 边界。

更新后,边界将具有正的 宽度高度x0y0 将是最小值。

参数:
xy(N, 2) 类数组

(x, y)坐标。

忽略bool, 可选
  • True 时,忽略 Bbox 的现有边界。

  • False 时,包含 Bbox 的现有边界。

  • None 时,使用传递给 ignore() 的最后一个值。

updatex, updateybool, 默认: True

True 时,更新 x/y 值。

update_from_data_y(y, ignore=None)[源代码][源代码]#

根据传入的数据更新 Bbox 的 y 轴边界。更新后,边界将具有正值 height,并且 y0 将是最小值。

参数:
yndarray

y 值的数组。

忽略bool, 可选
  • True 时,忽略 Bbox 的现有边界。

  • False 时,包含 Bbox 的现有边界。

  • None 时,使用传递给 ignore() 的最后一个值。

update_from_path(path, ignore=None, updatex=True, updatey=True)[源代码][源代码]#

更新 Bbox 的范围以包含所提供路径的顶点。更新后,范围将具有正的 宽度高度x0y0 将是最小值。

参数:
路径 : Path路径
忽略bool, 可选
  • True 时,忽略 Bbox 的现有边界。

  • False 时,包含 Bbox 的现有边界。

  • None 时,使用传递给 ignore() 的最后一个值。

updatex, updateybool, 默认: True

True 时,更新 x/y 值。

property x0#

定义边界框的一对 x 坐标中的第一个。

这并不保证小于 x1 (为此,请使用 xmin)。

property x1#

定义边界框的成对 x 坐标的第二个。

这并不保证大于 x0 (为此,请使用 xmax)。

property y0#

定义边界框的一对 y 坐标中的第一个。

这并不保证小于 y1 (为此,请使用 ymin)。

property y1#

定义边界框的成对 y 坐标的第二个。

这并不保证大于 y0 (为此,请使用 ymax)。

class matplotlib.transforms.BboxBase(shorthand_name=None)[源代码][源代码]#

基类:TransformNode

所有边界框的基类。

这个类是不可变的;Bbox 是一个可变的子类。

规范的表示形式是两个点,它们的顺序没有限制。提供了方便的属性来获取左、下、右、上边缘以及宽度和高度,但这些属性并未明确存储。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

anchored(c, container=None)[源代码][源代码]#

返回一个 Bbox 的副本,该副本锚定在 container 内的 c 处。

参数:
c(浮点数, 浮点数) 或 {'C', 'SW', 'S', 'SE', 'E', 'NE', ...}

一个相对坐标 (x, y) 对(0 是左或下,1 是右或上),'C'(中心),或一个基本方向('SW',西南,是左下,等等)。

容器 : Bbox, 可选Bbox, 可选

Bbox 定位在其内部的框。

property bounds#

返回 (x0, y0, 宽度, 高度)。

coefs = {'C': (0.5, 0.5), 'E': (1.0, 0.5), 'N': (0.5, 1.0), 'NE': (1.0, 1.0), 'NW': (0, 1.0), 'S': (0.5, 0), 'SE': (1.0, 0), 'SW': (0, 0), 'W': (0, 0.5)}#
contains(x, y)[源代码][源代码]#

返回 (x, y) 是否在边界框内或其边缘上。

containsx(x)[源代码][源代码]#

返回 x 是否在闭区间 (x0, x1) 内。

containsy(y)[源代码][源代码]#

返回 y 是否在闭区间 (y0, y1) 内。

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

返回此矩形的角点作为点的数组。

具体来说,这将返回数组 [[x0, y0], [x0, y1], [x1, y0], [x1, y1]]

count_contains(vertices)[源代码][源代码]#

计算 Bbox 中包含的顶点数量。任何 x 或 y 值为非有限的顶点将被忽略。

参数:
顶点(N, 2) 数组
count_overlaps(bboxes)[源代码][源代码]#

计算与这个重叠的边界框的数量。

参数:
bboxes : BboxBase 的序列序列
expanded(sw, sh)[源代码][源代码]#

通过将此 Bbox 以其中心为中心,按因子 swsh 进行扩展来构造一个 Bbox

property extents#

返回 (x0, y0, x1, y1)。

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

参与转换树并需要使其父级无效或被无效化的任何事物的基类。这包括实际上不是转换的类,例如边界框,因为某些转换依赖于边界框来计算它们的值。

fully_contains(x, y)[源代码][源代码]#

返回 x, y 是否在边界框内,但不在其边缘上。

fully_containsx(x)[源代码][源代码]#

返回 x 是否在开区间 (x0, x1) 内。

fully_containsy(y)[源代码][源代码]#

返回 y 是否在开区间 (y0, y1) 内。

fully_overlaps(other)[源代码][源代码]#

返回此边界框是否与另一个边界框重叠,不包括边缘。

参数:
其他 : BboxBaseBboxBase
get_points()[源代码][源代码]#
property height#

边界框的(带符号)高度。

static intersection(bbox1, bbox2)[源代码][源代码]#

如果 bbox1bbox2 相交,则返回它们的交集;如果不相交,则返回 None。

property intervalx#

定义边界框的 x 坐标对。

这不能保证从左到右排序。

property intervaly#

定义边界框的一对 y 坐标。

这不能保证从下到上排序。

is_affine = True#
is_bbox = True#
property max#

边界框的右上角。

property min#

边界框的左下角。

overlaps(other)[源代码][源代码]#

返回此边界框是否与另一个边界框重叠。

参数:
其他 : BboxBaseBboxBase
property p0#

定义边界框的第一对 (x, y) 坐标。

这并不保证是左下角(为此,请使用 min)。

property p1#

定义边界框的第二对 (x, y) 坐标。

这并不保证是右上角(为此,请使用 max)。

padded(w_pad, h_pad=None)[源代码][源代码]#

通过在所有四个边上填充此 Bbox 来构造一个 Bbox

参数:
w_padfloat

宽度填充

h_pad浮点数, 可选

高度填充。默认值为 w_pad

rotated(radians)[源代码][源代码]#

返回一个轴对齐的边界框,该边界框包围了将此 Bbox 旋转 弧度 角后的结果。

shrunk(mx, my)[源代码][源代码]#

返回 Bbox 的一个副本,在 x 方向上缩小 mx 倍,在 y 方向上缩小 my 倍。框的左下角保持不变。通常 mxmy 会小于 1,但这不是强制的。

shrunk_to_aspect(box_aspect, container=None, fig_aspect=1.0)[源代码][源代码]#

返回 Bbox 的一个副本,缩放后使其尽可能大,同时保持所需的纵横比,即 box_aspect。如果框坐标是相对的(例如,相对于较大的框,如图),则使用 fig_aspect 指定该图的物理纵横比,以便 box_aspect 也可以作为绝对尺寸的比率给出,而不是相对尺寸的比率。

property size#

边界框的(带符号的)宽度和高度。

splitx(*args)[源代码][源代码]#

返回一个由原始 Bbox 对象通过在 args 给定的分数位置处垂直分割形成的新 Bbox 对象列表。

splity(*args)[源代码][源代码]#

返回一个由原始 Bbox 对象通过在由 args 指定的分数位置处用水平线分割形成的新 Bbox 对象列表。

transformed(transform)[源代码][源代码]#

通过静态变换 transform 来构造一个 Bbox

translated(tx, ty)[源代码][源代码]#

通过将此 Bbox 沿 txty 方向平移来构造一个新的 Bbox

static union(bboxes)[源代码][源代码]#

返回一个包含所有给定 bboxesBbox

property width#

边界框的(带符号的)宽度。

property x0#

定义边界框的一对 x 坐标中的第一个。

这并不保证小于 x1 (为此,请使用 xmin)。

property x1#

定义边界框的成对 x 坐标的第二个。

这并不保证大于 x0 (为此,请使用 xmax)。

property xmax#

边界框的右侧边缘。

property xmin#

边界框的左边沿。

property y0#

定义边界框的一对 y 坐标中的第一个。

这并不保证小于 y1 (为此,请使用 ymin)。

property y1#

定义边界框的成对 y 坐标的第二个。

这并不保证大于 y0 (为此,请使用 ymax)。

property ymax#

边界框的顶部边缘。

property ymin#

边界框的底部边缘。

class matplotlib.transforms.BboxTransform(boxin, boxout, **kwargs)[源代码][源代码]#

基类:Affine2DBase

BboxTransform 线性地将点从一个 Bbox 转换到另一个。

创建一个新的 BboxTransform ,它将点从 boxin 线性变换到 boxout

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

获取此变换的仿射部分的矩阵。

is_separable = True#

如果此变换在x和y维度上是可分离的,则为True。

class matplotlib.transforms.BboxTransformFrom(boxin, **kwargs)[源代码][源代码]#

基类:Affine2DBase

BboxTransformFrom 将点从给定的 Bbox 线性变换到单位边界框。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

获取此变换的仿射部分的矩阵。

is_separable = True#

如果此变换在x和y维度上是可分离的,则为True。

class matplotlib.transforms.BboxTransformTo(boxout, **kwargs)[源代码][源代码]#

基类:Affine2DBase

BboxTransformTo 是一种线性变换,它将点从单位边界框变换到给定的 Bbox

创建一个新的 BboxTransformTo,它将点从单位边界框线性变换到 boxout

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

获取此变换的仿射部分的矩阵。

is_separable = True#

如果此变换在x和y维度上是可分离的,则为True。

class matplotlib.transforms.BboxTransformToMaxOnly(boxout, **kwargs)[源代码][源代码]#

基类:BboxTransformTo

[已弃用] BboxTransformToMaxOnly 是一种线性变换,它将点从单位边界框变换到给定的 Bbox,固定左上角为 (0, 0)。

注释

自 3.9 版本弃用.

创建一个新的 BboxTransformTo,它将点从单位边界框线性变换到 boxout

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

获取此变换的仿射部分的矩阵。

class matplotlib.transforms.BlendedAffine2D(x_transform, y_transform, **kwargs)[源代码][源代码]#

基类:_BlendedMixin, Affine2DBase

“混合”变换在 x 方向使用一种变换,在 y 方向使用另一种变换。

此版本针对子变换均为 Affine2DBase 类型的情况进行了优化。

使用 x_transform 来转换 x 轴,使用 y_transform 来转换 y 轴,创建一个新的“混合”变换。

x_transformy_transform 都必须是二维仿射变换。

通常你不会直接调用这个构造函数,而是使用 blended_transform_factory 函数,它可以自动确定创建哪种类型的混合变换。

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

获取此变换的仿射部分的矩阵。

is_separable = True#

如果此变换在x和y维度上是可分离的,则为True。

class matplotlib.transforms.BlendedGenericTransform(x_transform, y_transform, **kwargs)[源代码][源代码]#

基类:_BlendedMixin, Transform

“混合”变换在 x 方向使用一种变换,在 y 方向使用另一种变换。

这个“通用”版本可以处理在 xy 方向上的任何给定子变换。

使用 x_transform 来转换 x 轴,使用 y_transform 来转换 y 轴,创建一个新的“混合”变换。

通常你不会直接调用这个构造函数,而是使用 blended_transform_factory 函数,它可以自动确定创建哪种类型的混合变换。

contains_branch(other)[源代码][源代码]#

返回给定的变换是否是此变换的子树。

此例程使用变换等式来识别子树,因此在许多情况下,将使用对象ID。

对于给定的变换表示整个变换的情况,返回 True。

property depth#

返回形成此 Transform 实例的变换链中的变换数量。

备注

对于复合变换的特殊情况,返回两者的最大深度。

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

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

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

获取此变换的仿射部分。

property has_inverse#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

input_dims = 2#

此变换的输入维度数量。必须在子类中用整数重写。

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

返回相应的逆变换。

它持有 x == self.inverted().transform(self.transform(x))

此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。

property is_affine#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

is_separable = True#

如果此变换在x和y维度上是可分离的,则为True。

output_dims = 2#

此变换的输出维度数量。必须在子类中用整数重写。

pass_through = True#

如果 pass_through 为 True,所有祖先都将始终被无效化,即使 'self' 已经无效。

transform_non_affine(values)[源代码][源代码]#

仅应用此变换的非仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等同于 transform(values)。在仿射变换中,这始终是一个空操作。

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

class matplotlib.transforms.CompositeAffine2D(a, b, **kwargs)[源代码][源代码]#

基类:Affine2DBase

通过先应用变换 a 再应用变换 b 形成的复合变换。

这个版本是对处理 ab 均为二维仿射变换的情况的优化。

创建一个新的复合变换,该变换是应用 Affine2DBase a 然后 Affine2DBase b 的结果。

通常你不会直接调用这个构造函数,而是写 a + b ,这会自动选择最适合的复合变换实例来创建。

property depth#

返回形成此 Transform 实例的变换链中的变换数量。

备注

对于复合变换的特殊情况,返回两者的最大深度。

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

获取此变换的仿射部分的矩阵。

class matplotlib.transforms.CompositeGenericTransform(a, b, **kwargs)[源代码][源代码]#

基类:Transform

通过先应用变换 a 再应用变换 b 形成的复合变换。

这个“通用”版本可以处理任意两种变换。

创建一个新的复合变换,该变换是应用变换 a 然后变换 b 的结果。

通常你不会直接调用这个构造函数,而是写 a + b ,这会自动选择最适合的复合变换实例来创建。

contains_branch_seperately(other_transform)[源代码][源代码]#

返回给定分支是否是此变换在每个单独维度上的子树。

此方法的一个常见用途是识别一个变换是否是一个包含 Axes 数据变换的混合变换。例如:

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
property depth#

返回形成此 Transform 实例的变换链中的变换数量。

备注

对于复合变换的特殊情况,返回两者的最大深度。

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

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

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

获取此变换的仿射部分。

property has_inverse#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

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

返回相应的逆变换。

它持有 x == self.inverted().transform(self.transform(x))

此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。

property is_affine#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

property is_separable#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

pass_through = True#

如果 pass_through 为 True,所有祖先都将始终被无效化,即使 'self' 已经无效。

transform_affine(values)[源代码][源代码]#

仅对给定数组值应用此变换的仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常是一个空操作。在仿射变换中,这等同于 transform(values)

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_non_affine(values)[源代码][源代码]#

仅应用此变换的非仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等同于 transform(values)。在仿射变换中,这始终是一个空操作。

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_path_non_affine(path)[源代码][源代码]#

将此变换的非仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

class matplotlib.transforms.IdentityTransform(*args, **kwargs)[源代码][源代码]#

基类:Affine2DBase

一个特殊的类,以快速的方式执行单一操作,即恒等变换。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

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

获取此变换的仿射部分。

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

获取此变换的仿射部分的矩阵。

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

返回相应的逆变换。

它持有 x == self.inverted().transform(self.transform(x))

此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。

transform(values)[源代码][源代码]#

在给定的 values 数组上应用此转换。

参数:
类似数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_affine(values)[源代码][源代码]#

仅对给定数组值应用此变换的仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常是一个空操作。在仿射变换中,这等同于 transform(values)

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_non_affine(values)[源代码][源代码]#

仅应用此变换的非仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等同于 transform(values)。在仿射变换中,这始终是一个空操作。

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_path(path)[源代码][源代码]#

将变换应用于 Path 路径,返回一个新的 Path

在某些情况下,此变换可能会在原本为线段的路径中插入曲线。

transform_path_affine(path)[源代码][源代码]#

将此变换的仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

transform_path_non_affine(path)[源代码][源代码]#

将此变换的非仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

class matplotlib.transforms.LockableBbox(bbox, x0=None, y0=None, x1=None, y1=None, **kwargs)[源代码][源代码]#

基类:BboxBase

一个 Bbox ,其中某些元素可能在某些值上被锁定。

当子边界框发生变化时,此边界框的边界将相应更新,锁定元素除外。

参数:
bboxBbox

要包裹的子边界框。

x0浮点数或无

x0 的锁定值,或 None 以保持未锁定状态。

y0浮点数或无

y0 的锁定值,或 None 以保持未锁定。

x1浮点数或无

x1 的锁定值,或 None 以保持未锁定。

y1浮点数或无

y1 的锁定值,或 None 以保持未锁定。

get_points()[源代码][源代码]#
property locked_x0#

用于锁定 x0 的值。

类型:

浮点数或无

property locked_x1#

用于锁定 x1 的值。

类型:

浮点数或无

property locked_y0#

用于锁定 y0 的值。

类型:

浮点数或无

property locked_y1#

用于锁定 y1 的值。

类型:

浮点数或无

class matplotlib.transforms.ScaledTranslation(xt, yt, scale_trans, **kwargs)[源代码][源代码]#

基类:Affine2DBase

一个变换,它在 xtytscale_trans 变换之后,通过 xtyt 进行平移。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

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

获取此变换的仿射部分的矩阵。

class matplotlib.transforms.Transform(shorthand_name=None)[源代码][源代码]#

基类:TransformNode

所有实际执行转换的 TransformNode 实例的基类。

所有非仿射变换都应该是这个类的子类。新的仿射变换应该是 Affine2D 的子类。

此类别的子类别应至少覆盖以下成员:

如果默认设置不合适,可以覆盖以下属性:

如果变换需要对 matplotlib.path.Path 对象进行非标准的操作,例如在原本是线段的地方添加曲线,它应该重写:

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

__add__(other)[源代码][源代码]#

将两个变换组合在一起,使得 self 之后跟随 other

A + B 返回一个变换 C ,使得 C.transform(x) == B.transform(A.transform(x))

__sub__(other)[源代码][源代码]#

selfother 的逆组合,如果有相同的项则抵消:

# In general:
A - B == A + B.inverted()
# (but see note regarding frozen transforms below).

# If A "ends with" B (i.e. A == A' + B for some A') we can cancel
# out B:
(A' + B) - B == A'

# Likewise, if B "starts with" A (B = A + B'), we can cancel out A:
A - (A + B') == B'.inverted() == B'^-1

取消(而不是简单地返回 A + B.inverted())在多个方面都很重要:

  • 在计算 B 的逆时,它避免了浮点数的不准确性:B - B 保证完全抵消(结果为单位变换),而 B + B.inverted() 可能会有一个小的 epsilon 差异。

  • B.inverted() 总是返回一个冻结的变换:如果计算 A + B + B.inverted() 并在之后改变 B,那么 B.inverted() 不会更新,最后两个项将不再相互抵消;另一方面,即使 B 被改变,A + B - B 将始终等于 A

contains_branch(other)[源代码][源代码]#

返回给定的变换是否是此变换的子树。

此例程使用变换等式来识别子树,因此在许多情况下,将使用对象ID。

对于给定的变换表示整个变换的情况,返回 True。

contains_branch_seperately(other_transform)[源代码][源代码]#

返回给定分支是否是此变换在每个单独维度上的子树。

此方法的一个常见用途是识别一个变换是否是一个包含 Axes 数据变换的混合变换。例如:

x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
property depth#

返回形成此 Transform 实例的变换链中的变换数量。

备注

对于复合变换的特殊情况,返回两者的最大深度。

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

获取此变换的仿射部分。

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

获取此变换的仿射部分的矩阵。

has_inverse = False#

如果此变换有对应的逆变换,则为真。

input_dims = None#

此变换的输入维度数量。必须在子类中用整数重写。

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

返回相应的逆变换。

它持有 x == self.inverted().transform(self.transform(x))

此方法的返回值应视为临时的。对 self 的更新不会导致其反转副本的相应更新。

is_separable = False#

如果此变换在x和y维度上是可分离的,则为True。

output_dims = None#

此变换的输出维度数量。必须在子类中用整数重写。

transform(values)[源代码][源代码]#

在给定的 values 数组上应用此转换。

参数:
类似数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_affine(values)[源代码][源代码]#

仅对给定数组值应用此变换的仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常是一个空操作。在仿射变换中,这等同于 transform(values)

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_angles(angles, pts, radians=False, pushoff=1e-05)[源代码][源代码]#

在特定位置锚定的一组角度的变换。

参数:
角度(N,) 类数组

要转换的角度。

pts(N, 2) 类数组

角度固定的点。

弧度bool, 默认值: False

角度是弧度还是度数。

pushofffloat

对于 pts 中的每个点和 angles 中的每个角度,通过从该点开始变换长度为 pushoff 的线段,并使该角度相对于水平轴,然后测量水平轴与变换后的线段之间的角度,来计算变换后的角度。

返回:
(N,) 数组
transform_bbox(bbox)[源代码][源代码]#

转换给定的边界框。

对于包括缓存在内的更智能的变换(这是Matplotlib中的常见需求),请参见 TransformedBbox

transform_non_affine(values)[源代码][源代码]#

仅应用此变换的非仿射部分。

transform(values) 总是等同于 transform_affine(transform_non_affine(values))

在非仿射变换中,这通常等同于 transform(values)。在仿射变换中,这始终是一个空操作。

参数:
数组

输入值为一个长度为 input_dims 的数组或形状为 (N, input_dims) 的数组。

返回:
数组

输出值为一个长度为 output_dims 的数组,或者形状为 (N, output_dims),取决于输入。

transform_path(path)[源代码][源代码]#

将变换应用于 Path 路径,返回一个新的 Path

在某些情况下,此变换可能会在原本为线段的路径中插入曲线。

transform_path_affine(path)[源代码][源代码]#

将此变换的仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

transform_path_non_affine(path)[源代码][源代码]#

将此变换的非仿射部分应用于 Path 路径,返回一个新的 Path

transform_path(path) 等同于 transform_path_affine(transform_path_non_affine(values))

transform_point(point)[源代码][源代码]#

返回一个变换后的点。

此函数仅保留用于向后兼容;更通用的 transform 方法能够转换点列表和单个点。

点以长度为 input_dims 的序列给出。变换后的点作为长度为 output_dims 的序列返回。

class matplotlib.transforms.TransformNode(shorthand_name=None)[源代码][源代码]#

基类:object

参与转换树并需要使其父级无效或被无效化的任何事物的基类。这包括实际上不是转换的类,例如边界框,因为某些转换依赖于边界框来计算它们的值。

参数:
简称str

表示转换“名称”的字符串。该名称除了在 DEBUG=True 时提高 str(transform) 的可读性外,没有其他意义。

INVALID = 3#
INVALID_AFFINE = 2#
INVALID_NON_AFFINE = 1#
frozen()[源代码][源代码]#

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

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

使这个 TransformNode 失效并触发其祖先的失效。任何时候变换改变时都应调用。

is_affine = False#
is_bbox = False#
pass_through = False#

如果 pass_through 为 True,所有祖先都将始终被无效化,即使 'self' 已经无效。

set_children(*children)[源代码][源代码]#

设置变换的子项,以便失效系统知道哪些变换可以使此变换失效。应从依赖于其他变换的任何变换的构造函数中调用。

class matplotlib.transforms.TransformWrapper(child)[源代码][源代码]#

基类:Transform

一个辅助类,持有单个子变换并与其等效。

如果转换树的一个节点在运行时必须被替换为不同类型的转换,这是有用的。此类允许该替换正确触发失效。

TransformWrapper 实例在其整个生命周期中必须具有相同的输入和输出维度,因此子变换只能替换为具有相同维度的另一个子变换。

child: 一个 Transform 实例。这个子对象之后可能会被 set() 方法替换。

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

返回此转换节点的冻结副本。冻结副本在其子节点更改时不会更新。对于存储转换的先前已知状态非常有用,通常情况下可能会使用 copy.deepcopy()

property has_inverse#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

property input_dims#

!! 由 numpydoc 处理 !!

property is_affine#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

property is_separable#

bool(x) -> bool

当参数 x 为真时返回 True,否则返回 False。内置的 True 和 False 是类 bool 仅有的两个实例。类 bool 是类 int 的子类,并且不能被继承。

property output_dims#

!! 由 numpydoc 处理 !!

pass_through = True#

如果 pass_through 为 True,所有祖先都将始终被无效化,即使 'self' 已经无效。

set(child)[源代码][源代码]#

用另一个子节点替换此转换的当前子节点。

新子节点必须与当前子节点具有相同数量的输入和输出维度。

class matplotlib.transforms.TransformedBbox(bbox, transform, **kwargs)[源代码][源代码]#

基类:BboxBase

一个 Bbox 会根据给定的变换自动进行变换。当子边界框或变换发生变化时,此边界框的边界将相应更新。

参数:
bboxBbox
变换 : 变换转换
contains(x, y)[源代码][源代码]#

返回 (x, y) 是否在边界框内或其边缘上。

fully_contains(x, y)[源代码][源代码]#

返回 x, y 是否在边界框内,但不在其边缘上。

get_points()[源代码][源代码]#
class matplotlib.transforms.TransformedPatchPath(patch)[源代码][源代码]#

基类:TransformedPath

TransformedPatchPath 缓存了 Patch 的一个非仿射变换副本。当变换的非仿射部分或补丁发生变化时,此缓存副本会自动更新。

参数:
patch补丁
class matplotlib.transforms.TransformedPath(path, transform)[源代码][源代码]#

基类:TransformNode

TransformedPath 缓存了 Path 的一个非仿射变换副本。当变换的非仿射部分发生变化时,此缓存副本会自动更新。

备注

路径被此类的视为不可变的。对路径的顶点/代码的任何更新都不会触发变换的重新计算。

参数:
路径 : Path路径
变换 : 变换转换
get_affine()[源代码][源代码]#
get_fully_transformed_path()[源代码][源代码]#

返回子路径的完全转换后的副本。

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

返回子路径的副本,其中变换的非仿射部分已经应用,同时附带完成变换所需的仿射部分路径。

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

返回子路径的副本,其中变换的非仿射部分已经应用,同时附带完成变换所需的仿射路径部分。与 get_transformed_path_and_affine() 不同,不会执行插值。

matplotlib.transforms.blended_transform_factory(x_transform, y_transform)[源代码][源代码]#

使用 x_transform 来转换 x 轴,使用 y_transform 来转换 y 轴,创建一个新的“混合”变换。

当两个子变换都是仿射变换时,返回一个更快的混合变换版本。

matplotlib.transforms.composite_transform_factory(a, b)[源代码][源代码]#

创建一个新的复合变换,该变换是先应用变换 a 再应用变换 b 的结果。

对于子变换均为仿射变换或其中一个是恒等变换的情况,提供了混合变换的快捷版本。

复合变换也可以使用 '+' 运算符创建,例如:

c = a + b
matplotlib.transforms.interval_contains(interval, val)[源代码][源代码]#

检查,包括性地,一个区间是否包含给定的值。

参数:
间隔(浮点数, 浮点数)

区间的端点。

valfloat

要检查的值在区间内。

返回:
布尔

是否 valinterval 内。

matplotlib.transforms.interval_contains_open(interval, val)[源代码][源代码]#

检查,排除端点,一个区间是否包含给定值。

参数:
间隔(浮点数, 浮点数)

区间的端点。

valfloat

要检查的值在区间内。

返回:
布尔

是否 valinterval 内。

matplotlib.transforms.nonsingular(vmin, vmax, expander=0.001, tiny=1e-15, increasing=True)[源代码][源代码]#

根据需要修改范围的端点以避免奇点。

参数:
vmin, vmaxfloat

初始端点。

扩展器float, 默认值: 0.001

如果原始区间太小,基于 tinyvminvmax 扩展的分数量。

float, 默认值: 1e-15

区间与其端点最大绝对值之比的阈值。如果区间小于此值,则将被扩展。此值应约为 1e-15 或更大;否则区间将接近双精度分辨率极限。

增加bool, 默认: True

如果为真,当 vmin > vmax 时交换 vminvmax

返回:
vmin, vmaxfloat

端点,必要时扩展和/或交换。如果任一输入为无穷大或NaN,或者如果两个输入均为0或非常接近于零,则返回 -扩展器扩展器

matplotlib.transforms.offset_copy(trans, fig=None, x=0.0, y=0.0, units='inches')[源代码][源代码]#

返回一个带有增加偏移的新变换。

参数:
trans : Transform 子类转换子类

任何将应用偏移的变换。

fig : Figure, 默认: NoneFigure, 默认值: None

当前图形。如果 units 是 'dots',它可以是 None。

x, yfloat, 默认值: 0.0

要应用的偏移量。

单位{'英寸', '点', '像素'}, 默认: '英寸'

偏移量的单位。

返回:
Transform 子类

应用偏移进行变换。