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 方法来绘制箭头。

箭头头部和尾部位置固定在指定的箭头起点和终点,但当坐标轴移动或缩放时,箭头的大小和形状(在显示坐标中)不会改变。

定义箭头位置和路径

定义箭头位置和路径有两种方式

  • 起点、终点和连接:典型的方法是使用 posAposB 定义箭头的起点和终点。这两个点之间的曲线可以通过 connectionstyle 进一步配置。

    如果给出,箭头曲线会被 patchApatchB 裁剪,使其在这些补丁的边界处开始/结束。此外,箭头曲线可以通过 shrinkAshrinkB 缩短,以在起点/终点(可能裁剪后)和绘制的箭头之间创建边距。

  • 路径:或者,如果提供了 path,则沿此 Path 绘制箭头。在这种情况下,connectionstylepatchApatchBshrinkAshrinkB 将被忽略。

样式

arrowstyle 定义了箭头头部、尾部和箭杆的样式。可以通过关键字参数设置 Patch 属性(例如 linewidthcolorfacecoloredgecolor 等)来进一步设置生成箭头的样式。

参数:
posA, posB(float, float), 可选

箭头的起点和终点的 (x, y) 坐标。实际绘制的起点和终点位置可以通过 patchApatchBshrinkAshrinkB 进行修改。

posAposBpath 互斥。

pathPath, 可选

如果提供,将沿此路径绘制箭头,并忽略 patchApatchBshrinkAshrinkB

pathposAposB 互斥。

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, fancywedge 包含闭合路径并且可以填充。

connectionstylestr 或 ConnectionStyle 或 None, 可选, 默认: 'arc3'

连接 posAposBConnectionStyle。可以是

  • 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, patchBPatch, 默认: None

可选的补丁,分别位于 posAposB。如果给出,箭头路径将由这些补丁裁剪,使得箭头头部和尾部位于补丁的边界处。

如果提供了 path,则忽略此参数。

shrinkA, shrinkBfloat, 默认: 2

将箭头路径在 posAposB 处缩短此点数。这允许在预期的起点/终点和绘制的箭头之间添加边距。

如果提供了 path,则忽略此参数。

mutation_scalefloat, 默认: 1

用于缩放 arrowstyle 属性(例如 head_length)的值。

mutation_aspectNone 或 float, 默认: None

在变形之前,矩形的高度将按此值挤压,变形后的框将按此值的倒数拉伸。

其他参数:
**kwargsPatch 属性, 可选

以下是可用的 Patch 属性列表

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha(透明度)

未知

animated(动画)

布尔值

antialiasedaa(抗锯齿)

布尔值或 None

capstyle(线帽样式)

CapStyle 或 {'butt', 'projecting', 'round'}

clip_box(剪切框)

BboxBase 或 None

clip_on(是否剪切)

布尔值

clip_path(剪切路径)

Patch 或 (Path, Transform) 或 None

color(颜色)

color(颜色)

edgecolorec(边缘颜色)

颜色 或 None

facecolorfc(填充颜色)

颜色 或 None

figure(图)

FigureSubFigure

fill(填充)

布尔值

gid

str

hatch(影线)

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth(影线线宽)

未知

in_layout(在布局中)

布尔值

joinstyle(连接样式)

JoinStyle 或 {'miter', 'round', 'bevel'}

label(标签)

object(对象)

linestylels(线型)

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidthlw(线宽)

浮点数或 None

mouseover(鼠标悬停)

布尔值

path_effects(路径效果)

AbstractPathEffect 列表

picker(拾取器)

None 或 布尔值 或 浮点数 或 可调用对象

rasterized(栅格化)

布尔值

sketch_params(草图参数)

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap(对齐)

布尔值或 None

transform(变换)

变换

url

str

visible(可见)

布尔值

zorder(Z轴顺序)

浮点数

与其他补丁不同,FancyArrowPatch 的默认 capstylejoinstyle 设置为 "round"

draw(renderer)[source]#

使用给定的渲染器绘制 Artist(及其子对象)。

如果艺术家不可见(Artist.get_visible 返回 False),则此操作无效。

参数:
rendererRendererBase 子类。

备注

此方法在 Artist 子类中被覆盖。

get_arrowstyle()[source]#

返回 arrowstyle 对象。

get_connectionstyle()[source]#

返回使用的 ConnectionStyle

get_mutation_aspect()[source]#

返回 bbox 变形的纵横比。

get_mutation_scale()[source]#

返回变异比例。

返回:
scalar(标量)
get_path()[source]#

返回数据坐标中箭头的路径。

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]#

一次性设置多个属性。

支持的属性包括:

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha(透明度)

浮点数或 None

animated(动画)

布尔值

antialiasedaa(抗锯齿)

布尔值或 None

arrowstyle(箭头样式)

[ '-' | '<-' | '->' | '<->' | '<|-' | '-|>' | '<|-|>' | ']-' | '-[' | ']-[' | '|-|' | ']->' | '<-[' | 'simple' | 'fancy' | 'wedge' ]

capstyle(线帽样式)

CapStyle 或 {'butt', 'projecting', 'round'}

clip_box(剪切框)

BboxBase 或 None

clip_on(是否剪切)

布尔值

clip_path(剪切路径)

Patch 或 (Path, Transform) 或 None

color(颜色)

color(颜色)

connectionstyle(连接样式)

[ 'arc3' | 'angle3' | 'angle' | 'arc' | 'bar' ]

edgecolorec(边缘颜色)

颜色 或 None

facecolorfc(填充颜色)

颜色 或 None

figure(图)

FigureSubFigure

fill(填充)

布尔值

gid

str

hatch(影线)

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth(影线线宽)

未知

in_layout(在布局中)

布尔值

joinstyle(连接样式)

JoinStyle 或 {'miter', 'round', 'bevel'}

label(标签)

object(对象)

linestylels(线型)

{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}

linewidthlw(线宽)

浮点数或 None

mouseover(鼠标悬停)

布尔值

mutation_aspect(变形纵横比)

浮点数

mutation_scale(变形比例)

浮点数

patchA

patches.Patch

patchB

patches.Patch

path_effects(路径效果)

AbstractPathEffect 列表

picker(拾取器)

None 或 布尔值 或 浮点数 或 可调用对象

positions(位置)

未知

rasterized(栅格化)

布尔值

sketch_params(草图参数)

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap(对齐)

布尔值或 None

transform(变换)

变换

url

str

visible(可见)

布尔值

zorder(Z轴顺序)

浮点数

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

箭头样式的附加属性。有关支持的参数,请参见上表。

示例

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

连接样式的附加属性。有关支持的参数,请参见上表。

示例

set_connectionstyle("Arc,armA=30,rad=10")
set_connectionstyle("arc", armA=30, rad=10)
set_mutation_aspect(aspect)[source]#

设置 bbox 变形的纵横比。

参数:
aspectfloat
set_mutation_scale(scale)[source]#

设置变异比例。

参数:
scale浮点数
set_patchA(patchA)[source]#

设置尾部补丁。

参数:
patchApatches.Patch
set_patchB(patchB)[source]#

设置箭头头部补丁。

参数:
patchBpatches.Patch
set_positions(posA, posB)[source]#

设置连接路径的起始和结束位置。

参数:
posA, posBNone, tuple

箭头尾部和箭头头部的(x, y)坐标。如果为None,则使用当前值。

使用matplotlib.patches.FancyArrowPatch的示例#

多坐标轴动画

多坐标轴动画

饼中条形图

饼中条形图

箭头指南

箭头指南

括号箭头上的角度注释

括号箭头上的角度注释

注解

注解