matplotlib.transforms
#
Matplotlib 包含一个用于任意几何变换的框架,用于确定在画布上绘制的所有元素的最终位置。
变换由TransformNode
对象树组成,其实际值取决于它们的子对象。当孩子的内容发生变化时,他们的父母自动失效。下次访问无效的转换时,会重新计算以反映这些更改。这种失效/缓存方法可以防止不必要的转换重新计算,并有助于更好的交互性能。
例如,下面是用于将数据绘制到图形的变换树的图形:
该框架可用于仿射和非仿射变换。但是,为了速度,我们希望尽可能使用后端渲染器执行仿射变换。因此,可以仅对一组数据执行变换的仿射或非仿射部分。仿射总是假定在非仿射之后发生。对于任何变换:
full transform == non-affine part + affine part
后端不希望自己处理非仿射变换。
有关如何使用转换的示例,请参阅教程转换教程。
- 类 matplotlib.transforms。Affine2D ( matrix = None , ** kwargs ) [source] #
基地:
Affine2DBase
可变的 2D 仿射变换。
从 3x3 numpy 浮点数组初始化仿射变换:
a c e b d f 0 0 1
如果矩阵为无,则使用恒等变换进行初始化。
- __init__ ( matrix = None , ** kwargs ) [source] #
从 3x3 numpy 浮点数组初始化仿射变换:
a c e b d f 0 0 1
如果矩阵为无,则使用恒等变换进行初始化。
- __module__ = 'matplotlib.transforms' #
- 静态 身份( ) [来源] #
[已弃用]返回一个新
Affine2D
对象,即身份转换。除非此转换稍后会发生突变,否则请考虑使用更快的
IdentityTransform
类。笔记
3.6 版后已弃用:改用 Affine2D()。
- 旋转( theta ) [来源] #
为这个变换添加一个旋转(以弧度为单位)。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- rotate_around ( x , y , theta ) [来源] #
添加围绕点 (x, y) 的旋转(以弧度为单位)。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- rotate_deg (度数) [来源] #
为这个变换添加一个旋转(以度为单位)。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- rotate_deg_around ( x , y ,度数) [来源] #
添加围绕点 (x, y) 的旋转(以度为单位)。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- scale ( sx , sy = None ) [来源] #
在适当的位置添加一个刻度。
如果sy为 None,则在x和 y方向上应用相同的比例。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- 设置(其他)[来源] #
Affine2DBase
从另一个对象的冻结副本设置此转换 。
- 偏斜( xShear , yShear ) [来源] #
在适当的位置添加一个倾斜。
xShear和yShear分别是沿x轴和 y轴的剪切角,单位为弧度。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- skew_deg ( xShear , yShear ) [来源] #
在适当的位置添加一个倾斜。
xShear和yShear分别是沿x轴和 y轴的剪切角,以度为单位。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- 翻译( tx , ty ) [来源] #
就地添加翻译。
返回self,因此该方法可以很容易地与对
rotate()
、rotate_deg()
和的更多调用链接translate()
起来scale()
。
- 类 matplotlib.transforms。Affine2DBase ( * args , ** kwargs ) [来源] #
基地:
AffineBase
所有二维仿射变换的基类。
使用 3x3 numpy 数组执行 2D 仿射变换:
a c e b d f 0 0 1
此类提供只读接口。对于可变的 2D 仿射变换,使用
Affine2D
.此类的子类通常只需要覆盖构造函数并
get_matrix()
生成自定义 3x3 矩阵。- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- has_inverse = True #
如果此变换具有相应的逆变换,则为真。
- input_dims = 2 #
此变换的输入维数。必须在子类中被覆盖(使用整数)。
- 倒置( ) [来源] #
返回对应的逆变换。
它成立。
x == self.inverted().transform(self.transform(x))
此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。
- 属性 is_separable #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- output_dims = 2 #
此变换的输出维数。必须在子类中被覆盖(使用整数)。
- transform_affine (点) [来源] #
仅将此转换的仿射部分应用于给定的值数组。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常是无操作的。在仿射变换中,这等价于
transform(values)
。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- 类 matplotlib.transforms。AffineBase ( * args , ** kwargs ) [来源] #
基地:
Transform
任意维数的所有仿射变换的基类。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __hash__ =无#
- __init__ ( * args , ** kwargs ) [来源] #
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __module__ = 'matplotlib.transforms' #
- is_affine =真#
- 转换(值)[来源] #
将此转换应用于给定的值数组。
- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_affine (值) [来源] #
仅将此转换的仿射部分应用于给定的值数组。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常是无操作的。在仿射变换中,这等价于
transform(values)
。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_non_affine (点) [来源] #
仅应用此转换的非仿射部分。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是空操作。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- 类 matplotlib.transforms。AffineDeltaTransform ( transform , ** kwargs ) [来源] #
基地:
Affine2DBase
用于转换点对之间位移的转换包装器。
此类旨在用于转换点对之间的位移(“位置增量”)(例如,作为s的
offset_transform
) :给定一个 满足Collection
的变换。t
t = AffineDeltaTransform(t) + offset
AffineDeltaTransform
AffineDeltaTransform(a - b) == AffineDeltaTransform(a) - AffineDeltaTransform(b)
这是通过将变换矩阵的偏移分量强制为零来实现的。
从 3.3 开始,此类是实验性的,API 可能会更改。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __init__ (变换, ** kwargs ) [来源] #
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __module__ = 'matplotlib.transforms' #
- 类 matplotlib.transforms。Bbox ( points , ** kwargs ) [来源] #
基地:
BboxBase
一个可变的边界框。
例子
从已知边界创建
默认构造函数采用边界 "points" 。
[[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 的“空”对象是 null bbox,它是空集的替身。
>>> Bbox.null() Bbox([[inf, inf], [-inf, -inf]])
向空 bbox 添加点将为您提供这些点的 bbox。
>>> 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
相当于从一个空 bbox 重新开始。>>> 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 是交叉点的标识
>>> 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]])
- 参数:
- 点数组
形式为 2x2 的 numpy 数组。
[[x0, y0], [x1, y1]]
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 静态 from_extents ( * args , minpos = None ) [source] #
从左、下、右和上创建一个新的 Bbox 。
y轴向上增加。
- 参数:
- 左、下、右、上浮动
边界框的四个范围。
- minpos浮动或无
如果提供,Bbox 将设置一个最小正值。这在处理负边界导致浮点错误的对数刻度和其他刻度时很有用。
- 忽略(值)[来源] #
设置后续调用是否应忽略框的现有边界
update_from_data_xy()
。- 布尔值
时
True
,后续调用update_from_data_xy()
将忽略Bbox
.何时
False
,后续调用update_from_data_xy()
将包括Bbox
.
- 属性 区间x #
定义边界框的一对x坐标。
这不保证从左到右排序。
- 属性 间隔#
定义边界框的一对y坐标。
这不保证从下到上排序。
- 属性 minpos #
Bbox 内两个方向的最小正值。
这在处理对数刻度和负边界导致浮点错误的其他刻度时很有用,并将用作最小范围而不是p0。
- 属性 minposx #
Bbox 内x方向的最小正值。
这在处理对数刻度和负边界导致浮点错误的其他刻度时很有用,并将用作最小x范围而不是x0。
- 属性 minposy #
Bbox 内y方向上的最小正值。
这在处理对数刻度和负边界导致浮点错误的其他刻度时很有用,并将用作最小y范围而不是y0。
- 属性 p0 #
定义边界框的第一对 ( x , y ) 坐标。
这不能保证是左下角(为此,使用
min
)。
- 属性 p1 #
定义边界框的第二对 ( x , y ) 坐标。
这不能保证是右上角(为此,使用
max
)。
- update_from_data_xy ( xy , ignore = None , updatex = True , updatey = True ) [来源] #
Bbox
根据传入的数据更新边界。更新后,边界将具有正的宽度和高度; x0和y0将是最小值。
- 类 matplotlib.transforms。BboxBase ( shorthand_name = None ) [来源] #
-
所有边界框的基类。
这个类是不可变的;
Bbox
是一个可变的子类。规范表示是两点,对它们的顺序没有限制。提供了方便的属性来获取左、下、右和上边缘以及宽度和高度,但这些没有明确存储。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 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)} #
- 属性 高度#
边界框的(有符号)高度。
- 属性 区间x #
定义边界框的一对x坐标。
这不保证从左到右排序。
- 属性 间隔#
定义边界框的一对y坐标。
这不保证从下到上排序。
- is_affine =真#
- is_bbox =真#
- 属性 最大值#
边界框的右上角。
- 属性 最小值#
边界框的左下角。
- shrunk_to_aspect ( box_aspect , container = None , fig_aspect = 1.0 ) [source] #
返回 , 的副本,
Bbox
使其在具有所需纵横比 box_aspect的同时尽可能大。如果框坐标是相对的(即,较大框的一部分,例如图形),则该图形的物理纵横比由 fig_aspect指定,因此box_aspect也可以作为绝对尺寸的比率给出,而不是相对尺寸.
- 属性 大小#
边界框的(有符号)宽度和高度。
- 属性 宽度#
边界框的(有符号)宽度。
- 属性 xmax #
边界框的右边缘。
- 属性 xmin #
边界框的左边缘。
- 属性 ymax #
边界框的上边缘。
- 属性 ymin #
边界框的底部边缘。
- 类 matplotlib.transforms。BboxTransform ( boxin , boxout , ** kwargs ) [来源] #
基地:
Affine2DBase
BboxTransform
将点从一个点线性变换Bbox
到另一个点。创建一个新
BboxTransform
的点,将点从boxin线性转换为boxout。- __annotations__ = {} #
- __init__ ( boxin , boxout , ** kwargs ) [来源] #
创建一个新
BboxTransform
的点,将点从boxin线性转换为boxout。
- __module__ = 'matplotlib.transforms' #
- is_separable = True #
如果此变换在 x 和 y 维度上是可分离的,则为真。
- 类 matplotlib.transforms。BboxTransformFrom ( boxin , ** kwargs ) [来源] #
基地:
Affine2DBase
BboxTransformFrom
将点从给定的边界框线性变换Bbox
到单位边界框。- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __init__ ( boxin , ** kwargs ) [来源] #
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __module__ = 'matplotlib.transforms' #
- is_separable = True #
如果此变换在 x 和 y 维度上是可分离的,则为真。
- 类 matplotlib.transforms。BboxTransformTo ( boxout , ** kwargs ) [来源] #
基地:
Affine2DBase
BboxTransformTo
是一种将点从单位边界框线性变换到给定 的变换Bbox
。创建一个新
BboxTransformTo
的,将点从单位边界框线性转换为boxout。- __annotations__ = {} #
- __init__ ( boxout , ** kwargs ) [来源] #
创建一个新
BboxTransformTo
的,将点从单位边界框线性转换为boxout。
- __module__ = 'matplotlib.transforms' #
- is_separable = True #
如果此变换在 x 和 y 维度上是可分离的,则为真。
- 类 matplotlib.transforms。BboxTransformToMaxOnly ( boxout , ** kwargs ) [来源] #
-
BboxTransformTo
是一种将点从单位边界框线性变换到Bbox
左上角固定为 (0, 0) 的给定值的变换。创建一个新
BboxTransformTo
的,将点从单位边界框线性转换为boxout。- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 类 matplotlib.transforms。BlendedAffine2D ( x_transform , y_transform , ** kwargs ) [来源] #
基地:
_BlendedMixin
,Affine2DBase
“混合”变换对x方向使用一个变换,对y方向使用另一个变换。
这个版本是对两个子变换都是 type 的情况的优化
Affine2DBase
。创建一个新的“混合”变换,使用x_transform来变换 x轴,使用y_transform来变换y轴。
x_transform和y_transform都必须是 2D 仿射变换。
您通常不会直接调用此构造函数,而是使用该
blended_transform_factory
函数来代替,该函数可以自动确定要创建哪种混合变换。- __annotations__ = {} #
- __init__ ( x_transform , y_transform , ** kwargs ) [来源] #
创建一个新的“混合”变换,使用x_transform来变换 x轴,使用y_transform来变换y轴。
x_transform和y_transform都必须是 2D 仿射变换。
您通常不会直接调用此构造函数,而是使用该
blended_transform_factory
函数来代替,该函数可以自动确定要创建哪种混合变换。
- __module__ = 'matplotlib.transforms' #
- is_separable = True #
如果此变换在 x 和 y 维度上是可分离的,则为真。
- 类 matplotlib.transforms。BlendedGenericTransform ( x_transform , y_transform , ** kwargs ) [来源] #
基地:
_BlendedMixin
,Transform
“混合”变换对x方向使用一个变换,对y方向使用另一个变换。
这个“通用”版本可以处理x和y方向上的任何给定子变换 。
创建一个新的“混合”变换,使用x_transform来变换 x轴,使用y_transform来变换y轴。
您通常不会直接调用此构造函数,而是使用该
blended_transform_factory
函数来代替,该函数可以自动确定要创建哪种混合变换。- __annotations__ = {} #
- __init__ ( x_transform , y_transform , ** kwargs ) [来源] #
创建一个新的“混合”变换,使用x_transform来变换 x轴,使用y_transform来变换y轴。
您通常不会直接调用此构造函数,而是使用该
blended_transform_factory
函数来代替,该函数可以自动确定要创建哪种混合变换。
- __module__ = 'matplotlib.transforms' #
- contains_branch ( other ) [来源] #
返回给定的变换是否是这个变换的子树。
该例程使用变换相等来识别子树,因此在许多情况下,将使用对象 id。
对于给定变换表示整个变换的情况,返回 True。
- 属性 深度#
返回已链接在一起以形成此 Transform 实例的变换的数量。
笔记
对于复合变换的特殊情况,返回两者的最大深度。
- 属性 has_inverse #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- input_dims = 2 #
此变换的输入维数。必须在子类中被覆盖(使用整数)。
- 倒置( ) [来源] #
返回对应的逆变换。
它成立。
x == self.inverted().transform(self.transform(x))
此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。
- 属性 is_affine #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- is_separable = True #
如果此变换在 x 和 y 维度上是可分离的,则为真。
- output_dims = 2 #
此变换的输出维数。必须在子类中被覆盖(使用整数)。
- pass_through = True #
如果 pass_through 为 True,则所有祖先都将始终无效,即使 'self' 已经无效。
- transform_non_affine (点) [来源] #
仅应用此转换的非仿射部分。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是空操作。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- 类 matplotlib.transforms。CompositeAffine2D ( a , b , ** kwargs ) [来源] #
基地:
Affine2DBase
通过应用变换a然后变换b形成的复合变换。
此版本是处理a 和b都是 2D 仿射的情况的优化。
创建一个新的复合变换,它是应用a然后b的结果。
Affine2DBase
Affine2DBase
您通常不会直接调用此构造函数,而是编写它,它会自动选择最佳类型的复合变换实例来创建。
a + b
- __annotations__ = {} #
- __init__ ( a , b , ** kwargs ) [来源] #
创建一个新的复合变换,它是应用a然后b的结果。
Affine2DBase
Affine2DBase
您通常不会直接调用此构造函数,而是编写它,它会自动选择最佳类型的复合变换实例来创建。
a + b
- __module__ = 'matplotlib.transforms' #
- 属性 深度#
返回已链接在一起以形成此 Transform 实例的变换的数量。
笔记
对于复合变换的特殊情况,返回两者的最大深度。
- 类 matplotlib.transforms。CompositeGenericTransform ( a , b , ** kwargs ) [来源] #
基地:
Transform
通过应用变换a然后变换b形成的复合变换。
这个“通用”版本可以处理任意两个任意转换。
创建一个新的复合变换,它是应用变换a然后变换b的结果。
您通常不会直接调用此构造函数,而是编写它,它会自动选择最佳类型的复合变换实例来创建。
a + b
- __annotations__ = {} #
- __hash__ =无#
- __init__ ( a , b , ** kwargs ) [来源] #
创建一个新的复合变换,它是应用变换a然后变换b的结果。
您通常不会直接调用此构造函数,而是编写它,它会自动选择最佳类型的复合变换实例来创建。
a + b
- __module__ = 'matplotlib.transforms' #
- 属性 深度#
返回已链接在一起以形成此 Transform 实例的变换的数量。
笔记
对于复合变换的特殊情况,返回两者的最大深度。
- 属性 has_inverse #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- 倒置( ) [来源] #
返回对应的逆变换。
它成立。
x == self.inverted().transform(self.transform(x))
此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。
- 属性 is_affine #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- 属性 is_separable #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- pass_through = True #
如果 pass_through 为 True,则所有祖先都将始终无效,即使 'self' 已经无效。
- transform_affine (点) [来源] #
仅将此转换的仿射部分应用于给定的值数组。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常是无操作的。在仿射变换中,这等价于
transform(values)
。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- 类 matplotlib.transforms。IdentityTransform ( * args , ** kwargs ) [来源] #
基地:
Affine2DBase
一个特殊的类,它以一种快速的方式做一件事,即身份转换。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 倒置( ) [来源] #
返回对应的逆变换。
它成立。
x == self.inverted().transform(self.transform(x))
此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。
- 变换(点) [来源] #
将此转换应用于给定的值数组。
- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_affine (点) [来源] #
仅将此转换的仿射部分应用于给定的值数组。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常是无操作的。在仿射变换中,这等价于
transform(values)
。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_non_affine (点) [来源] #
仅应用此转换的非仿射部分。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是空操作。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- 类 matplotlib.transforms。LockableBbox ( bbox , x0 = None , y0 = None , x1 = None , y1 = None , ** kwargs ) [source] #
基地:
BboxBase
A
Bbox
某些元素可能被锁定在某些值。当子边界框发生变化时,除了被锁定的元素之外,该边界框的边界也会相应更新。
- 参数:
- 盒子
Bbox
要包装的子边界框。
- x0浮点数或无
x0 的锁定值,或 None 保持解锁状态。
- y0浮点数或无
y0 的锁定值,或 None 保持解锁状态。
- x1浮动或无
x1 的锁定值,或 None 保持解锁状态。
- y1浮点数或无
y1 的锁定值,或 None 保持解锁状态。
- 盒子
- __annotations__ = {} #
- __init__ ( bbox , x0 = None , y0 = None , x1 = None , y1 = None , ** kwargs ) [source] #
- 参数:
- 盒子
Bbox
要包装的子边界框。
- x0浮点数或无
x0 的锁定值,或 None 保持解锁状态。
- y0浮点数或无
y0 的锁定值,或 None 保持解锁状态。
- x1浮动或无
x1 的锁定值,或 None 保持解锁状态。
- y1浮点数或无
y1 的锁定值,或 None 保持解锁状态。
- 盒子
- __module__ = 'matplotlib.transforms' #
- 属性 locked_x0 #
float 或 None:用于锁定 x0 的值。
- 属性 locked_x1 #
float 或 None:用于锁定 x1 的值。
- 属性 locked_y0 #
float 或 None:用于锁定 y0 的值。
- 属性 locked_y1 #
float 或 None:用于锁定 y1 的值。
- 类 matplotlib.transforms。ScaledTranslation ( xt , yt , scale_trans , ** kwargs ) [来源] #
基地:
Affine2DBase
在xt和yt 由scale_trans转换后,由xt和yt转换的转换。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __annotations__ = {} #
- __init__ ( xt , yt , scale_trans , ** kwargs ) [来源] #
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __module__ = 'matplotlib.transforms' #
- 类 matplotlib.transforms。转换( shorthand_name = None ) [来源] #
-
TransformNode
实际执行转换的所有实例的基类。所有非仿射变换都应该是此类的子类。新的仿射变换应该是 的子类
Affine2D
。此类的子类应覆盖以下成员(至少):
如果默认值不合适,可能会覆盖以下属性:
is_separable
(对于 1D -> 1D 变换默认为 True,否则为 False)has_inverse
inverted()
(如果被覆盖则默认为 True ,否则为 False)
如果变换需要对对象做一些非标准的事情
matplotlib.path.Path
,例如在曾经有线段的地方添加曲线,它应该覆盖:- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __add__ (其他) [来源] #
将两个变换组合在一起,以便self后跟other。
A + B
返回一个变换C
,以便 .C.transform(x) == B.transform(A.transform(x))
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- __sub__ (其他) [来源] #
用other的倒数组合self ,如果有的话,取消相同的项:
# 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 的逆时避免了浮点不准确性:保证完全抵消(导致恒等变换),而可能相差很小的 epsilon。
B - B
B + B.inverted()
B.inverted()
总是返回一个冻结的变换:如果一个计算 然后 mutates ,那么 将不会被更新,最后两个术语将不再抵消;另一方面,即使发生突变,也将始终等于 。A + B + B.inverted()
B
B.inverted()
A + B - B
A
B
- contains_branch ( other ) [来源] #
返回给定的变换是否是这个变换的子树。
该例程使用变换相等来识别子树,因此在许多情况下,将使用对象 id。
对于给定变换表示整个变换的情况,返回 True。
- contains_branch_seperately ( other_transform ) [来源] #
返回给定分支是否是每个单独维度上此变换的子树。
此方法的常见用途是识别变换是否是包含 Axes 数据变换的混合变换。例如:
x_isdata, y_isdata = trans.contains_branch_seperately(ax.transData)
- 属性 深度#
返回已链接在一起以形成此 Transform 实例的变换的数量。
笔记
对于复合变换的特殊情况,返回两者的最大深度。
- has_inverse = False #
如果此变换具有相应的逆变换,则为真。
- input_dims =无#
此变换的输入维数。必须在子类中被覆盖(使用整数)。
- 倒置( ) [来源] #
返回对应的逆变换。
它成立。
x == self.inverted().transform(self.transform(x))
此方法的返回值应被视为临时的。对self的更新不会导致对其反向副本的相应更新。
- is_separable =假#
如果此变换在 x 和 y 维度上是可分离的,则为真。
- output_dims =无#
此变换的输出维数。必须在子类中被覆盖(使用整数)。
- 转换(值)[来源] #
将此转换应用于给定的值数组。
- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_affine (值) [来源] #
仅将此转换的仿射部分应用于给定的值数组。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常是无操作的。在仿射变换中,这等价于
transform(values)
。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_angles (角度, pts ,弧度= False , pushoff = 1e-05 ) [来源] #
变换一组锚定在特定位置的角度。
- 参数:
- 角度(N,) 类似数组
要变换的角度。
- pts (N, 2) 类数组
角度锚定的点。
- 弧度布尔值,默认值:False
角度是弧度还是度数。
- 推离浮子
对于pts中的每个点和 angle 中的角度,通过变换从该点开始的一段长度pushoff 并相对于水平轴形成该角度,并测量水平轴和变换段之间的角度来计算变换角度。
- 返回:
- (N,) 数组
- transform_bbox ( bbox ) [来源] #
变换给定的边界框。
有关更智能的转换,包括缓存(Matplotlib 中的常见要求),请参阅
TransformedBbox
.
- transform_non_affine (值) [来源] #
仅应用此转换的非仿射部分。
transform(values)
总是等价于transform_affine(transform_non_affine(values))
。在非仿射变换中,这通常等价于
transform(values)
。在仿射变换中,这始终是空操作。- 参数:
- 值数组
输入值作为长度
input_dims
或形状 (N xinput_dims
) 的 NumPy 数组。
- 返回:
- 大批
输出值作为长度
output_dims
或形状 (N xoutput_dims
) 的 NumPy 数组,具体取决于输入。
- transform_path_affine (路径) [来源] #
将此变换的仿射部分应用于路径,返回一个新的.
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 (点) [来源] #
返回一个变换的点。
此功能仅用于向后兼容;更通用的
transform
方法能够转换点列表和单个点。该点以长度序列的形式给出
input_dims
。转换后的点作为长度序列返回output_dims
。
- 类 matplotlib.transforms。TransformNode ( shorthand_name = None ) [来源] #
基地:
object
参与转换树并需要使其父级无效或被无效的任何事物的基类。这包括不是真正变换的类,例如边界框,因为一些变换依赖于边界框来计算它们的值。
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- 无效= 3 #
- INVALID_AFFINE = 2 #
- INVALID_NON_AFFINE = 1 #
- __annotations__ = {} #
- __dict__ = mappingproxy ({'__module__': ' matplotlib.transforms', ' __doc__': '\n任何参与转换树的基类\n并且需要使其父级无效或被无效。这包括\ n类不是真正的变换,例如边界框,因为一些\n变换依赖于边界 框 来 计算 它们的 值。\n ', 'INVALID_NON_AFFINE': 1, 'INVALID_AFFINE': 2, 'INVALID': 3, 'is_affine': False, 'is_bbox': False, 'pass_through': False, '__init__': <function TransformNode.__init__>, '__getstate__': <function TransformNode.__getstate__>, '__setstate__': <function TransformNode.__setstate__>, '__copy__': <function TransformNode.__copy__>, 'invalidate': <函数 TransformNode.invalidate>, '_invalidate_internal': <function TransformNode._invalidate_internal>, 'set_children': <function TransformNode.set_children>, 'frozen': <function TransformNode.frozen>, ' __dict__':< 'TransformNode'对象的属性 ' __dict__'>, '__weakref__':< 'TransformNode'对象的属性'__weakref__' >, '__annotations__': {}}) #
- __init__ ( shorthand_name = None ) [来源] #
- 参数:
- 速记名 str
表示转换的“名称”的字符串。
str(transform)
除了提高DEBUG=True 时的可读性之外,该名称没有任何意义 。
- __module__ = 'matplotlib.transforms' #
- __weakref__ #
对象的弱引用列表(如果已定义)
- 无效( ) [来源] #
使其无效
TransformNode
并触发其祖先的无效。应在变换更改时随时调用。
- is_affine =假#
- is_bbox =假#
- pass_through =假#
如果 pass_through 为 True,则所有祖先都将始终无效,即使 'self' 已经无效。
- 类 matplotlib.transforms。TransformWrapper ( child ) [来源] #
基地:
Transform
一个辅助类,它包含一个子变换并与其等效。
如果必须在运行时用不同类型的变换替换变换树的节点,这很有用。此类允许该替换正确触发失效。
TransformWrapper
实例在其整个生命周期中必须具有相同的输入和输出维度,因此子变换只能被另一个相同维度的子变换替换。孩子:一个
Transform
实例。这个孩子以后可能会被替换为set()
.- __annotations__ = {} #
- __hash__ =无#
- __module__ = 'matplotlib.transforms' #
- 属性 has_inverse #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- 属性 is_affine #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- 属性 is_separable #
布尔(x)->布尔
当参数 x 为真时返回 True,否则返回 False。内置 True 和 False 是类 bool 的仅有的两个实例。bool 类是 int 类的子类,不能被子类化。
- pass_through = True #
如果 pass_through 为 True,则所有祖先都将始终无效,即使 'self' 已经无效。
- 类 matplotlib.transforms。TransformedBbox ( bbox , transform , ** kwargs ) [来源] #
基地:
BboxBase
Bbox
由给定变换自动变换的A。当子边界框或变换发生变化时,此 bbox 的边界将相应更新。- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 类 matplotlib.transforms。TransformedPatchPath (补丁) [来源] #
-
A
TransformedPatchPath
缓存Patch
. 当转换或补丁的非仿射部分发生更改时,此缓存副本会自动更新。- 参数:
- 修补
Patch
- 修补
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 类 matplotlib.transforms。TransformedPath (路径,变换) [来源] #
-
A
TransformedPath
缓存Path
. 当转换的非仿射部分发生更改时,此缓存副本会自动更新。笔记
此类认为路径是不可变的。对路径的顶点/代码的任何更新都不会触发变换重新计算。
- __annotations__ = {} #
- __module__ = 'matplotlib.transforms' #
- 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 ) [来源] #
检查,包括,一个区间是否包括一个给定的值。
- 参数:
- 间隔(浮动,浮动)
区间的端点。
- val浮点数
要检查的值在区间内。
- 返回:
- 布尔
val是否在区间内。
- matplotlib.transforms。interval_contains_open ( interval , val ) [来源] #
检查(不包括端点)间隔是否包含给定值。
- 参数:
- 间隔(浮动,浮动)
区间的端点。
- val浮点数
要检查的值在区间内。
- 返回:
- 布尔
val是否在区间内。
- matplotlib.transforms。nonsingular ( vmin , vmax , expander = 0.001 , tiny = 1e-15 , increase = True ) [source] #
根据需要修改范围的端点以避免奇异性。
- 参数:
- vmin, vmax浮点数
初始端点。
- 扩展浮动,默认:0.001
如果原始间隔太小,则vmin和vmax扩展的分数,基于tiny。
- 微小的浮动,默认:1e-15
区间与其端点的最大绝对值之比的阈值。如果间隔小于此,则将其扩大。该值应在 1e-15 左右或更大;否则间隔将接近双精度分辨率限制。
- 增加布尔值,默认值:True
如果为 True,则交换vmin,如果vmin > vmax则交换vmax。
- 返回:
- vmin, vmax浮点数
必要时扩展和/或交换端点。如果任一输入为 inf 或 NaN,或者如果两个输入均为 0 或非常接近于零,则返回 - expander , expander。