Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020
matplotlib.path¶用于处理整个matplotlib中使用的多段线的模块。
Matplotlib中折线处理的主要类是 Path . 几乎所有的矢量图都利用了 Path 在绘制管道的某个地方。
当一个 Path 无法绘制实例本身,一些 Artist 子类,例如 PathPatch 和 PathCollection ,方便使用 Path 形象化。
matplotlib.path.Path(vertices, codes=None, _interpolation_steps=1, closed=False, readonly=False)[源代码]¶基类:object
Path 表示一系列可能断开的、可能闭合的直线段和曲线段。
这两个数组在第一维中的长度总是相同的。例如,要表示三次曲线,必须提供三个顶点和三个代码 CURVE3 .
代码类型为:
STOP: 1顶点(忽略)- 整个路径结尾的标记(当前不需要和忽略)
MOVETO: 1顶点- 拿起笔,移动到给定的顶点。
LINETO: 1顶点- 从当前位置到给定顶点画一条线。
CURVE3: 1个控制点,1个端点- 从给定控制点的当前位置到给定终点绘制二次贝塞尔曲线。
CURVE4: 2个控制点,1个端点- 用给定的控制点从当前位置到给定的终点绘制一条三次贝塞尔曲线。
CLOSEPOLY: 1顶点(忽略)- 绘制一条直线段到当前多段线的起点。
路径对象的用户不应直接访问顶点和代码数组。相反,他们应该使用 iter_segments() 或 cleaned() 获取顶点/代码对。这很重要,因为很多 Path 作为优化,对象不存储 代码 但有一个默认的 iter_segments() .
路径对象的某些行为可以由RCPARAM控制。请参见其键包含“path.”的rcparams。
注解
顶点和代码数组应该被视为不可变的——在构造函数前面有许多优化和假设,这些优化和假设在数据更改时不会更改。
使用给定的顶点和代码创建新路径。
| 参数: |
|
|---|
CLOSEPOLY = 79¶CURVE3 = 3¶CURVE4 = 4¶LINETO = 2¶MOVETO = 1¶NUM_VERTICES_FOR_CODE = {0: 1, 1: 1, 2: 1, 3: 2, 4: 3, 79: 1}¶将路径代码映射到代码期望的顶点数的字典。
STOP = 0¶arc(theta1, theta2, n=None, is_wedge=False)[源代码]¶从角度返回单位圆上的圆弧 THEA1 转角 TaTa2 (程度)
TaTa2 展开以在360度范围内产生最短的弧。也就是说,如果 TaTa2 > THEA1 +360,弧将来自 THEA1 到 TaTa2 -不是一个完整的圆圈加上一些额外的重叠。
如果 n 提供了要生成的样条曲线段数。如果 n 不提供,样条曲线段的数量根据 THEA1 和 TaTa2 .
Masionobe,L.,2003年。 Drawing an elliptical arc using polylines, quadratic or cubic Bezier curves .
circle(center=(0.0, 0.0), radius=1.0, readonly=False)[源代码]¶返回表示给定半径和圆心的圆的路径。
| 参数: |
|
|---|
笔记
圆是用三次贝塞尔曲线来近似的。这使用了8条围绕圆的样条曲线,方法如下:
Lancaster,Don。 Approximating a Circle or an Ellipse Using Four Bezier Cubic Splines .
cleaned(transform=None, remove_nans=False, clip=None, quantize=False, simplify=False, curves=False, stroke_width=1.0, snap=False, sketch=None)[源代码]¶根据返回新路径实例的参数清理路径。
参见
见 iter_segments() 有关关键字参数的详细信息。
| 返回: |
|
|---|
clip_to_bbox(bbox, inside=True)[源代码]¶将路径剪辑到给定的边界框。
路径必须由一个或多个闭合多边形组成。对于未闭合的路径,此算法将无法正常工作。
如果 里面 是 True 夹在盒子的内侧,否则夹在盒子的外侧。
code_type¶numpy.uint8 的别名
codes¶中的代码列表 Path 作为一维numpy数组。每个代码都是 STOP , MOVETO , LINETO , CURVE3 , CURVE4 或 CLOSEPOLY . 对于对应于多个顶点的代码 (CURVE3 和 CURVE4 ,该代码将重复,以便 self.vertices 和 self.codes 总是一样的。
contains_point(point, transform=None, radius=0.0)[源代码]¶返回(关闭)路径是否包含给定点。
如果 转型 不是 None ,将在执行测试之前转换路径。
半径 允许路径稍微变大或变小。
contains_points(points, transform=None, radius=0.0)[源代码]¶返回bool数组,该数组是 True 如果(闭合)路径包含相应的点。
如果 转型 不是 None ,将在执行测试之前转换路径。
半径 允许路径稍微变大或变小。
get_extents(transform=None)[源代码]¶返回扩展数据块( xmin , ymin , xmax , ymax 这条小路。
不同于计算 顶点 该算法单独考虑了控制曲线,并对控制点进行了适当的处理。
intersects_bbox(bbox, filled=True)[源代码]¶返回 True 如果此路径与给定的 Bbox .
填满 如果为真,则将路径视为已填充。也就是说,如果路径完全包围了边界框, intersects_bbox() 将返回true。
边界框始终被视为已填充。
intersects_path(other, filled=True)[源代码]¶返回 True 如果此路径与另一给定路径相交。
填满 如果为真,则将路径视为已填充。也就是说,如果一条路完全封闭了另一条路, intersects_path() 将返回true。
iter_segments(transform=None, remove_nans=True, clip=None, snap=False, stroke_width=1.0, simplify=None, curves=True, sketch=None)[源代码]¶迭代路径中的所有曲线段。每次迭代都返回一个2元组( 顶点 , code 在哪里 顶点 是1-3个坐标对的序列,以及 code 是其中之一 Path 代码。
此外,此方法可以提供许多标准的清理和到路径的转换。
| 参数: |
|
|---|
make_compound_path_from_polys(XY)[源代码]¶生成复合路径对象以绘制多个边数相等的多边形,xy是一个(numpolys x numsides x 2)numpy顶点数组。返回对象是 Path
(Source code _, png , pdf )
simplify_threshold¶像素差的分数,低于该分数的顶点将被简化。
to_polygons(transform=None, width=0, height=0, closed_only=True)[源代码]¶将此路径转换为多边形或多段线列表。每个多边形/多段线都是一个nx2顶点数组。换句话说,每个多边形都没有 MOVETO 指示或曲线。这对于在不支持复合路径或贝塞尔曲线的后端显示很有用。
如果 宽度 和 高度 都是非零的,则线条将被简化,以便(0,0),(宽度,高度)之外的顶点将被剪裁。
如果 closed_only 是 True (默认)将只返回最后一个点与第一个点相同的闭合多边形。路径中任何未闭合的多段线都将显式闭合。如果 closed_only 是 False ,路径中的任何未闭合多边形都将作为未闭合多边形返回,闭合多边形将通过将最后一个点设置为与第一个点相同的方式显式闭合返回。
transformed(transform)[源代码]¶返回路径的转换副本。
参见
matplotlib.transforms.TransformedPathunit_circle()[源代码]¶返回只读 Path 单位圆的。
在大多数情况下, Path.circle() 会是你想要的。
unit_circle_righthalf()[源代码]¶返回A Path 单位圆的右半部分。圆是用三次贝塞尔曲线来近似的。这使用了4个围绕圆的样条曲线,使用了这里介绍的方法:
Lancaster,Don。 Approximating a Circle or an Ellipse Using Four Bezier Cubic Splines .
unit_regular_asterisk(numVertices)[源代码]¶返回A Path 对于给定numVertices和radius为1.0且以(0,0)为中心的单位普通星号。
matplotlib.path.get_path_collection_extents(master_transform, paths, transforms, offsets, offset_transform)[源代码]¶给定一个序列 Path 物体, Transform 对象和偏移,如 PathCollection ,返回封装所有元素的边界框。
master_transform 是应用于所有路径的全局转换
路径 是一个序列 Path 实例。
变换 是一个序列 Affine2D 实例。
偏移量 是(x,y)偏移的序列(或nx2数组)
offset_transform 是一个 Affine2D 在将偏移应用到路径之前应用到偏移。
方式 路径 , 变换 和 偏移量 组合的方法与集合的方法相同。每个都是独立迭代的,因此如果您有3个路径、2个转换和1个偏移,它们的组合如下:
(a,a,a),(b,b,a),(c,a,a)