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

Version 3.1.1
matplotlib
Fork me on GitHub

目录

Related Topics

路径

matplotlib.path

用于处理整个matplotlib中使用的多段线的模块。

Matplotlib中折线处理的主要类是 Path . 几乎所有的矢量图都利用了 Path 在绘制管道的某个地方。

当一个 Path 无法绘制实例本身,一些 Artist 子类,例如 PathPatchPathCollection ,方便使用 Path 形象化。

class matplotlib.path.Path(vertices, codes=None, _interpolation_steps=1, closed=False, readonly=False)[源代码]

基类:object

Path 表示一系列可能断开的、可能闭合的直线段和曲线段。

底层存储由两个并行的numpy数组组成:
  • 顶点 :nx2浮点顶点数组
  • 代码 :n长度的uint8顶点类型数组

这两个数组在第一维中的长度总是相同的。例如,要表示三次曲线,必须提供三个顶点和三个代码 CURVE3 .

代码类型为:

  • STOP : 1顶点(忽略)
    整个路径结尾的标记(当前不需要和忽略)
  • MOVETO : 1顶点
    拿起笔,移动到给定的顶点。
  • LINETO : 1顶点
    从当前位置到给定顶点画一条线。
  • CURVE3 : 1个控制点,1个端点
    从给定控制点的当前位置到给定终点绘制二次贝塞尔曲线。
  • CURVE4 : 2个控制点,1个端点
    用给定的控制点从当前位置到给定的终点绘制一条三次贝塞尔曲线。
  • CLOSEPOLY : 1顶点(忽略)
    绘制一条直线段到当前多段线的起点。

路径对象的用户不应直接访问顶点和代码数组。相反,他们应该使用 iter_segments()cleaned() 获取顶点/代码对。这很重要,因为很多 Path 作为优化,对象不存储 代码 但有一个默认的 iter_segments() .

路径对象的某些行为可以由RCPARAM控制。请参见其键包含“path.”的rcparams。

注解

顶点和代码数组应该被视为不可变的——在构造函数前面有许多优化和假设,这些优化和假设在数据更改时不会更改。

使用给定的顶点和代码创建新路径。

参数:
vertices : array_like

这个 (n, 2) 浮点数组、屏蔽数组或表示路径顶点的成对序列。

如果 顶点 包含屏蔽值,这些值将转换为NaN,然后由agg pathiterator和其他路径数据使用者正确处理,例如 iter_segments() .

代码 : 无,数组,可选

n-表示路径代码的长度数组整数。如果不是“无”,则代码的长度必须与顶点的长度相同。如果没有, 顶点 将被视为一系列线段。

_interpolation_steps : 可选的

用作某些投影(如极坐标)的提示,该路径应在绘制前立即进行线性插值。此属性主要是实现细节,不用于公共用途。

关闭 : 可选的布尔

如果 代码 如果为“无”,且“闭合”为“真”,则顶点将被视为闭合多边形的直线段。

只读 : 可选的布尔

使路径的行为不可变,并将顶点和代码设置为只读数组。

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
classmethod arc(theta1, theta2, n=None, is_wedge=False)[源代码]

从角度返回单位圆上的圆弧 THEA1 转角 TaTa2 (程度)

TaTa2 展开以在360度范围内产生最短的弧。也就是说,如果 TaTa2 > THEA1 +360,弧将来自 THEA1TaTa2 -不是一个完整的圆圈加上一些额外的重叠。

如果 n 提供了要生成的样条曲线段数。如果 n 不提供,样条曲线段的数量根据 THEA1TaTa2 .

classmethod circle(center=(0.0, 0.0), radius=1.0, readonly=False)[源代码]

返回表示给定半径和圆心的圆的路径。

参数:
中心 : 双浮体

圆的中心。违约 (0, 0) .

radius : 浮动

圆的半径。默认值为1。

只读 : 布尔

创建路径实例时,创建的路径是否应设置“readonly”参数。

笔记

圆是用三次贝塞尔曲线来近似的。这使用了8条围绕圆的样条曲线,方法如下:

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数组。每个代码都是 STOPMOVETOLINETOCURVE3CURVE4CLOSEPOLY . 对于对应于多个顶点的代码 (CURVE3CURVE4 ,该代码将重复,以便 self.verticesself.codes 总是一样的。

contains_path(path, transform=None)[源代码]

返回此(关闭)路径是否完全包含给定路径。

如果 转型 不是 None ,将在执行测试之前转换路径。

contains_point(point, transform=None, radius=0.0)[源代码]

返回(关闭)路径是否包含给定点。

如果 转型 不是 None ,将在执行测试之前转换路径。

半径 允许路径稍微变大或变小。

contains_points(points, transform=None, radius=0.0)[源代码]

返回bool数组,该数组是 True 如果(闭合)路径包含相应的点。

如果 转型 不是 None ,将在执行测试之前转换路径。

半径 允许路径稍微变大或变小。

copy()

返回 Path 将与源共享顶点和代码 Path .

deepcopy(memo=None)

返回的deepcopy Path . 这个 Path 不会是只读的,即使源 Path 是。

get_extents(transform=None)[源代码]

返回扩展数据块( xminyminxmaxymax 这条小路。

不同于计算 顶点 该算法单独考虑了控制曲线,并对控制点进行了适当的处理。

has_nonfinite

True 如果顶点数组有非固定值。

hatch[源代码]

给定一个图案填充说明符, 孵化模式 ,生成可在重复图案填充图案中使用的路径。 密度 是每平方单位的行数。

interpolated(steps)[源代码]

返回重新采样的新路径,长度为n x步。当前不处理插值曲线。

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 代码。

此外,此方法可以提供许多标准的清理和到路径的转换。

参数:
转型 : None or Transform 实例 : 无或转换实例

如果不是“无”,则给定的仿射变换将应用于路径。

remove_nans : 假,真,可选

如果为true,则将从路径中删除所有nan,并插入moveto命令以跳过它们。

clip : 无或序列,可选

如果不是“无”,则必须是一个四元组(x1、y1、x2、y2),定义要在其中剪切路径的矩形。

snap : 无或bool,可选

如果没有,自动捕捉到像素,以减少直线的模糊性。如果为真,则强制捕捉;如果为假,则不要捕捉。

stroke_width : 可选浮动
正在绘制的笔划的宽度。需要

作为捕捉算法的提示。

简化 : 无或bool,可选
如果为真,则执行简化,以删除

不影响路径外观的顶点。如果为false,则不进行简化。如果没有,请使用should_simplife成员变量。另请参见rcparams path.simple和path.simple_阈值。

曲线 : 真、假,可选

如果为真,则曲线段将作为曲线段返回。如果为false,则所有曲线都将转换为直线段。

素描 : 无或序列,可选

如果不是“无”,则必须是表示草图参数的3元组形式(比例、长度、随机性)。

classmethod make_compound_path(*args)[源代码]

从路径对象列表中创建复合路径。

classmethod make_compound_path_from_polys(XY)[源代码]

生成复合路径对象以绘制多个边数相等的多边形,xy是一个(numpolys x numsides x 2)numpy顶点数组。返回对象是 Path

(Source code _, pngpdf

../_images/histogram_path_00_00.png
readonly

True 如果 Path 是只读的。

should_simplify

True 如果需要简化顶点数组。

simplify_threshold

像素差的分数,低于该分数的顶点将被简化。

to_polygons(transform=None, width=0, height=0, closed_only=True)[源代码]

将此路径转换为多边形或多段线列表。每个多边形/多段线都是一个nx2顶点数组。换句话说,每个多边形都没有 MOVETO 指示或曲线。这对于在不支持复合路径或贝塞尔曲线的后端显示很有用。

如果 宽度高度 都是非零的,则线条将被简化,以便(0,0),(宽度,高度)之外的顶点将被剪裁。

如果 closed_onlyTrue (默认)将只返回最后一个点与第一个点相同的闭合多边形。路径中任何未闭合的多段线都将显式闭合。如果 closed_onlyFalse ,路径中的任何未闭合多边形都将作为未闭合多边形返回,闭合多边形将通过将最后一个点设置为与第一个点相同的方式显式闭合返回。

transformed(transform)[源代码]

返回路径的转换副本。

参见

matplotlib.transforms.TransformedPath
一个专门的路径类,它将缓存转换后的结果,并在转换更改时自动更新。
classmethod unit_circle()[源代码]

返回只读 Path 单位圆的。

在大多数情况下, Path.circle() 会是你想要的。

classmethod unit_circle_righthalf()[源代码]

返回A Path 单位圆的右半部分。圆是用三次贝塞尔曲线来近似的。这使用了4个围绕圆的样条曲线,使用了这里介绍的方法:

classmethod unit_rectangle()[源代码]

返回A Path 单位矩形从(0,0)到(1,1)的实例。

classmethod unit_regular_asterisk(numVertices)[源代码]

返回A Path 对于给定numVertices和radius为1.0且以(0,0)为中心的单位普通星号。

classmethod unit_regular_polygon(numVertices)[源代码]

返回A Path 给定单位正多边形的实例 数字符号 半径为1.0,以(0,0)为中心。

classmethod unit_regular_star(numVertices, innerCircle=0.5)[源代码]

返回A Path 对于给定numVertices和半径为1.0,以(0,0)为中心的单位规则星。

vertices

中的顶点列表 Path 作为nx2 numpy数组。

classmethod wedge(theta1, theta2, n=None)[源代码]

从角度返回单位圆的楔块 THEA1 转角 TaTa2 (程度)

TaTa2 在360度范围内展开以产生最短的楔形。也就是说,如果 TaTa2 > THEA1 +360,楔子将来自 THEA1TaTa2 -不是一个完整的圆圈加上一些额外的重叠。

如果 n 提供了要生成的样条曲线段数。如果 n 不提供,样条曲线段的数量根据 THEA1TaTa2 .

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)
matplotlib.path.get_paths_extents(paths, transforms=[])[源代码]

给定一个序列 Path 对象和可选 Transform 对象,返回封装所有对象的边界框。

路径 是一个序列 Path 实例。

变换 是的可选序列 Affine2D 要应用于每个路径的实例。