matplotlib.patches.FancyArrowPatch#
- class matplotlib.patches.FancyArrowPatch(posA=None, posB=None, *, path=None, arrowstyle='simple', connectionstyle='arc3', patchA=None, patchB=None, shrinkA=2, shrinkB=2, mutation_scale=1, mutation_aspect=1, **kwargs)[source]#
基类:
Patch
一个花式箭头补丁。
它使用
ArrowStyle
绘制箭头。它主要由annotate
方法使用。大多数情况下,请使用 annotate 方法来绘制箭头。箭头头部和尾部位置固定在指定的箭头起点和终点,但当坐标轴移动或缩放时,箭头的大小和形状(在显示坐标中)不会改变。
定义箭头位置和路径
定义箭头位置和路径有两种方式
起点、终点和连接:典型的方法是使用 posA 和 posB 定义箭头的起点和终点。这两个点之间的曲线可以通过 connectionstyle 进一步配置。
如果给出,箭头曲线会被 patchA 和 patchB 裁剪,使其在这些补丁的边界处开始/结束。此外,箭头曲线可以通过 shrinkA 和 shrinkB 缩短,以在起点/终点(可能裁剪后)和绘制的箭头之间创建边距。
路径:或者,如果提供了 path,则沿此 Path 绘制箭头。在这种情况下,connectionstyle、patchA、patchB、shrinkA 和 shrinkB 将被忽略。
样式
arrowstyle 定义了箭头头部、尾部和箭杆的样式。可以通过关键字参数设置
Patch
属性(例如 linewidth、color、facecolor、edgecolor 等)来进一步设置生成箭头的样式。- 参数:
- posA, posB(float, float), 可选
箭头的起点和终点的 (x, y) 坐标。实际绘制的起点和终点位置可以通过 patchA、patchB、shrinkA 和 shrinkB 进行修改。
posA、posB 与 path 互斥。
- path
Path
, 可选 如果提供,将沿此路径绘制箭头,并忽略 patchA、patchB、shrinkA 和 shrinkB。
path 与 posA、posB 互斥。
- arrowstylestr 或
ArrowStyle
, 默认: 'simple' 箭头头部、尾部和箭杆的样式。可以是:
ArrowStyle
或其子类之一下表中给出的简写字符串名称(例如"->"),可选地包含逗号分隔的样式参数列表,例如"->, head_length=10, head_width=5"。
样式参数按 mutation_scale 缩放。
以下箭头样式可用。另请参阅Annotation arrow style reference。
类
名称
参数
Curve(曲线)
-
None(无)
CurveA
<-
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveB
->
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveAB
<->
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledA
<|-
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledB
-|>
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledAB
<|-|>
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
BracketA
]-
widthA=1.0, lengthA=0.2, angleA=0
BracketB
-[
widthB=1.0, lengthB=0.2, angleB=0
BracketAB
]-[
widthA=1.0, lengthA=0.2, angleA=0, widthB=1.0, lengthB=0.2, angleB=0
BarAB
|-|
widthA=1.0, angleA=0, widthB=1.0, angleB=0
BracketCurve
]->
widthA=1.0, lengthA=0.2, angleA=None
CurveBracket
<-[
widthB=1.0, lengthB=0.2, angleB=None
Simple(简单)
simple
head_length=0.5, head_width=0.5, tail_width=0.2
Fancy(花式)
fancy
head_length=0.4, head_width=0.4, tail_width=0.4
Wedge(楔形)
wedge
tail_width=0.3, shrink_factor=0.5
只有样式
<|-
,-|>
,<|-|>
simple
,fancy
和wedge
包含闭合路径并且可以填充。- connectionstylestr 或
ConnectionStyle
或 None, 可选, 默认: 'arc3' 连接 posA 和 posB 的
ConnectionStyle
。可以是ConnectionStyle
或其子类之一下表中给出的简写字符串名称,例如 "arc3"。
类
名称
参数
Arc3
arc3
rad=0.0
Angle3
angle3
angleA=90, angleB=0
Angle
angle
angleA=90, angleB=0, rad=0.0
Arc
arc
angleA=0, angleB=0, armA=None, armB=None, rad=0.0
Bar
bar
armA=0.0, armB=0.0, fraction=0.3, angle=None
如果提供了 path,则忽略此参数。
- patchA, patchB
Patch
, 默认: None 可选的补丁,分别位于 posA 和 posB。如果给出,箭头路径将由这些补丁裁剪,使得箭头头部和尾部位于补丁的边界处。
如果提供了 path,则忽略此参数。
- shrinkA, shrinkBfloat, 默认: 2
将箭头路径在 posA 和 posB 处缩短此点数。这允许在预期的起点/终点和绘制的箭头之间添加边距。
如果提供了 path,则忽略此参数。
- mutation_scalefloat, 默认: 1
用于缩放 arrowstyle 属性(例如 head_length)的值。
- mutation_aspectNone 或 float, 默认: None
在变形之前,矩形的高度将按此值挤压,变形后的框将按此值的倒数拉伸。
- 其他参数:
- **kwargs
Patch
属性, 可选 以下是可用的
Patch
属性列表属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
未知
布尔值
antialiased
或aa
(抗锯齿)布尔值或 None
CapStyle
或 {'butt', 'projecting', 'round'}BboxBase
或 None布尔值
Patch 或 (Path, Transform) 或 None
颜色 或 None
颜色 或 None
布尔值
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
未知
布尔值
JoinStyle
或 {'miter', 'round', 'bevel'}object(对象)
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
浮点数或 None
布尔值
None 或 布尔值 或 浮点数 或 可调用对象
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
str
布尔值
浮点数
与其他补丁不同,
FancyArrowPatch
的默认capstyle
和joinstyle
设置为"round"
。
- **kwargs
- draw(renderer)[source]#
使用给定的渲染器绘制 Artist(及其子对象)。
如果艺术家不可见(
Artist.get_visible
返回 False),则此操作无效。- 参数:
- renderer
RendererBase
子类。
- renderer
备注
此方法在 Artist 子类中被覆盖。
- get_connectionstyle()[source]#
返回使用的
ConnectionStyle
。
- set(*, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, arrowstyle=<UNSET>, capstyle=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, color=<UNSET>, connectionstyle=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, fill=<UNSET>, gid=<UNSET>, hatch=<UNSET>, hatch_linewidth=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, mutation_aspect=<UNSET>, mutation_scale=<UNSET>, patchA=<UNSET>, patchB=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, positions=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[source]#
一次性设置多个属性。
支持的属性包括:
属性
描述
一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量
浮点数或 None
布尔值
antialiased
或aa
(抗锯齿)布尔值或 None
[ '-' | '<-' | '->' | '<->' | '<|-' | '-|>' | '<|-|>' | ']-' | '-[' | ']-[' | '|-|' | ']->' | '<-[' | 'simple' | 'fancy' | 'wedge' ]
CapStyle
或 {'butt', 'projecting', 'round'}BboxBase
或 None布尔值
Patch 或 (Path, Transform) 或 None
[ 'arc3' | 'angle3' | 'angle' | 'arc' | 'bar' ]
颜色 或 None
颜色 或 None
布尔值
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
未知
布尔值
JoinStyle
或 {'miter', 'round', 'bevel'}object(对象)
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
浮点数或 None
布尔值
浮点数
浮点数
None 或 布尔值 或 浮点数 或 可调用对象
未知
布尔值
(scale: 浮点数, length: 浮点数, randomness: 浮点数)
布尔值或 None
str
布尔值
浮点数
- set_arrowstyle(arrowstyle=None, **kwargs)[source]#
设置箭头样式,可能带有其他属性。
不重用前一个箭头样式中的属性。
如果没有参数(或
arrowstyle=None
),则以人类可读的字符串形式返回可用的框样式。- 参数:
- arrowstylestr 或
ArrowStyle
箭头的样式:可以是
ArrowStyle
实例,或者是字符串,该字符串是样式名称和可选的逗号分隔属性(例如 "Fancy,head_length=0.2")。此类字符串用于构造ArrowStyle
对象,具体可参见该类的文档。以下箭头样式可用
类
名称
参数
Curve(曲线)
-
None(无)
CurveA
<-
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveB
->
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveAB
<->
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledA
<|-
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledB
-|>
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
CurveFilledAB
<|-|>
head_length=0.4, head_width=0.2, widthA=1.0, widthB=1.0, lengthA=0.2, lengthB=0.2, angleA=0, angleB=0, scaleA=None, scaleB=None
BracketA
]-
widthA=1.0, lengthA=0.2, angleA=0
BracketB
-[
widthB=1.0, lengthB=0.2, angleB=0
BracketAB
]-[
widthA=1.0, lengthA=0.2, angleA=0, widthB=1.0, lengthB=0.2, angleB=0
BarAB
|-|
widthA=1.0, angleA=0, widthB=1.0, angleB=0
BracketCurve
]->
widthA=1.0, lengthA=0.2, angleA=None
CurveBracket
<-[
widthB=1.0, lengthB=0.2, angleB=None
Simple(简单)
simple
head_length=0.5, head_width=0.5, tail_width=0.2
Fancy(花式)
fancy
head_length=0.4, head_width=0.4, tail_width=0.4
Wedge(楔形)
wedge
tail_width=0.3, shrink_factor=0.5
- **kwargs
箭头样式的附加属性。有关支持的参数,请参见上表。
- arrowstylestr 或
示例
set_arrowstyle("Fancy,head_length=0.2") set_arrowstyle("fancy", head_length=0.2)
- set_connectionstyle(connectionstyle=None, **kwargs)[source]#
设置连接样式,可能带有其他属性。
不重用前一个连接样式中的属性。
如果没有参数(或
connectionstyle=None
),则以人类可读的字符串形式返回可用的框样式。- 参数:
- connectionstylestr 或
ConnectionStyle
连接样式:可以是
ConnectionStyle
实例,或者是字符串,该字符串是样式名称和可选的逗号分隔属性(例如 "Arc,armA=30,rad=10")。此类字符串用于构造ConnectionStyle
对象,具体可参见该类的文档。以下连接样式可用
类
名称
参数
Arc3
arc3
rad=0.0
Angle3
angle3
angleA=90, angleB=0
Angle
angle
angleA=90, angleB=0, rad=0.0
Arc
arc
angleA=0, angleB=0, armA=None, armB=None, rad=0.0
Bar
bar
armA=0.0, armB=0.0, fraction=0.3, angle=None
- **kwargs
连接样式的附加属性。有关支持的参数,请参见上表。
- connectionstylestr 或
示例
set_connectionstyle("Arc,armA=30,rad=10") set_connectionstyle("arc", armA=30, rad=10)
- set_patchA(patchA)[source]#
设置尾部补丁。
- 参数:
- patchA
patches.Patch
- patchA
- set_patchB(patchB)[source]#
设置箭头头部补丁。
- 参数:
- patchB
patches.Patch
- patchB