Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020

matplotlib.transforms¶Matplotlib包含一个用于任意几何转换的框架,用于确定画布上绘制的所有元素的最终位置。
转换被组成树 TransformNode 其实际值取决于其子级的对象。当孩子的内容发生变化时,他们的父母将自动失效。下次访问失效的转换时,将重新计算以反映这些更改。这种无效/缓存方法可以防止不必要的转换重新编译,并有助于提高交互性能。
例如,下面是用于将数据绘制到图表的转换树的图:
该框架既可用于仿射转换,也可用于非仿射转换。但是,为了提高速度,我们希望尽可能使用后端渲染器执行仿射转换。因此,在一组数据上只执行转换的仿射或非仿射部分是可能的。仿射总是假定发生在非仿射之后。对于任何转换:
full transform == non-affine part + affine part
后端不应该自己处理非仿射转换。
matplotlib.transforms.Affine2D(matrix=None, **kwargs)[源代码]¶基类:matplotlib.transforms.Affine2DBase
可变的二维仿射变换。
从3x3 numpy float数组初始化仿射转换:
a c e
b d f
0 0 1
如果 矩阵 为“无”,使用标识转换初始化。
identity()[源代码]¶(StaticMethod)返回新的 Affine2D 对象,它是标识转换。
除非此转换稍后会发生变化,否则请考虑使用 IdentityTransform 改为类。
is_separable¶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 为“无”,在两个 x -和 y -方向。
返回 self ,因此此方法可以很容易地与对 rotate() , rotate_deg() , translate() 和 scale() .
set(other)[源代码]¶从另一个已冻结的副本设置此转换 Affine2DBase 对象。
skew(xShear, yShear)[源代码]¶在适当位置添加倾斜。
X剪 和 YS剪力 剪切角是沿着 x -和 y -轴,分别以弧度表示。
返回 self ,因此此方法可以很容易地与对 rotate() , rotate_deg() , translate() 和 scale() .
skew_deg(xShear, yShear)[源代码]¶在适当位置添加倾斜。
X剪 和 YS剪力 剪切角是沿着 x -和 y -轴,分别以度为单位。
返回 self ,因此此方法可以很容易地与对 rotate() , rotate_deg() , translate() 和 scale() .
translate(tx, ty)[源代码]¶就地添加翻译。
返回 self ,因此此方法可以很容易地与对 rotate() , rotate_deg() , translate() 和 scale() .
matplotlib.transforms.Affine2DBase(*args, **kwargs)[源代码]¶基类:matplotlib.transforms.AffineBase
所有二维仿射变换的基类。
使用3x3 numpy数组执行二维仿射转换:
a c e
b d f
0 0 1
此类提供只读接口。对于可变的二维仿射变换,请使用 Affine2D .
此类的子类通常只需要重写构造函数和 get_matrix() 生成自定义3x3矩阵。
has_inverse = True¶input_dims = 2¶inverted()[源代码]¶返回相应的逆变换。
此方法的返回值应视为临时值。对…的更新 self 不会对其反向副本进行相应的更新。
x === self.inverted().transform(self.transform(x))
is_separable¶matrix_from_values(a, b, c, d, e, f)[源代码]¶(StaticMethod)创建一个新的转换矩阵作为3x3 numpy数组的形式:
a c e
b d f
0 0 1
output_dims = 2¶transform_affine(points)[源代码]¶仅对给定的值数组执行此转换的仿射部分。
transform(values) 总是等价于 transform_affine(transform_non_affine(values)) .
在非仿射变换中,这通常是不可操作的。在仿射变换中,这相当于 transform(values) .
接受形状的numpy数组(n x input_dims )并返回形状的numpy数组(n x output_dims )
或者,接受一个长度为numpy的数组 input_dims 并返回一个numpy长度数组 output_dims .
transform_point(point)[源代码]¶返回单点转换副本的便利函数。
该点按长度顺序给出。 input_dims . 转换后的点作为长度序列返回 output_dims .
matplotlib.transforms.AffineBase(*args, **kwargs)[源代码]¶基类:matplotlib.transforms.Transform
任何维数的所有仿射变换的基类。
is_affine = True¶transform(values)[源代码]¶对给定的值数组执行转换。
接受形状的numpy数组(n x input_dims )并返回形状的numpy数组(n x output_dims )
或者,接受一个长度为numpy的数组 input_dims 并返回一个numpy长度数组 output_dims .
transform_affine(values)[源代码]¶仅对给定的值数组执行此转换的仿射部分。
transform(values) 总是等价于 transform_affine(transform_non_affine(values)) .
在非仿射变换中,这通常是不可操作的。在仿射变换中,这相当于 transform(values) .
接受形状的numpy数组(n x input_dims )并返回形状的numpy数组(n x output_dims )
或者,接受一个长度为numpy的数组 input_dims 并返回一个numpy长度数组 output_dims .
transform_non_affine(points)[源代码]¶只执行转换的非仿射部分。
transform(values) 总是等价于 transform_affine(transform_non_affine(values)) .
在非仿射变换中,这通常等价于 transform(values) . 在仿射变换中,这总是一个不运算。
接受形状的numpy数组(n x input_dims )并返回形状的numpy数组(n x output_dims )
或者,接受一个长度为numpy的数组 input_dims 并返回一个numpy长度数组 output_dims .
matplotlib.transforms.Bbox(points, **kwargs)[源代码]¶基类:matplotlib.transforms.BboxBase
可变边界框。
| 参数: |
|
|---|
笔记
如果需要创建 Bbox 对象,考虑静态方法 unit() , from_bounds() 和 from_extents() .
from_bounds(x0, y0, width, height)[源代码]¶(StaticMethod)新建 Bbox 从 x0 , y0 , 宽度 和 高度 .
宽度 和 高度 可能是否定的。
ignore(value)[源代码]¶设置后续调用是否应忽略框的现有边界 update_from_data_xy() .
True ,后续呼叫 update_from_data_xy() 将忽略 Bbox .False ,后续呼叫 update_from_data_xy() 将包括 Bbox .minpos¶minposx¶minposy¶update_from_data_xy(xy, ignore=None, updatex=True, updatey=True)[源代码]¶更新 Bbox 基于传入的数据。更新后,边界将为正 宽度 和 高度 ; x0 和 y0 将是最小值。
| 参数: |
|---|