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)[源代码][源代码]#

基类:Patch

一个花哨的箭头补丁。

它使用 ArrowStyle 绘制箭头。它主要由 annotate 方法使用。对于大多数用途,使用 annotate 方法来绘制箭头。

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

定义箭头有两种方式:

  • 如果给出了 posAposB,则会根据 connectionstyle 创建一条连接两点的路径。该路径将被 patchApatchB 裁剪,并进一步缩小 shrinkAshrinkB。使用 arrowstyle 参数沿着这条结果路径绘制箭头。

  • 或者,如果提供了 path ,则沿此路径绘制箭头,并且 patchApatchBshrinkAshrinkB 将被忽略。

参数:
posA, posB(浮点数, 浮点数), 默认: None

(x, y) 分别表示箭尾和箭头的坐标。

路径 : Path, 默认: None路径,默认值:无

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

arrowstyle : str 或 ArrowStyle, 默认: 'simple'str 或

用于绘制精美箭头的 ArrowStyle 。如果是字符串,它应该是可用箭头样式名称之一,带有可选的逗号分隔属性。可选属性旨在与 mutation_scale 一起缩放。以下箭头样式可用:

名称

Attrs

曲线

-

曲线A

<-

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

曲线B

->

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

曲线AB

<->

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

曲线填充

<|-

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

曲线填充B

-|>

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

曲线填充AB

<|-|>

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

head_length=0.5, head_width=0.5, tail_width=0.2

花哨

fancy

head_length=0.4, head_width=0.4, tail_width=0.4

楔子

wedge

tail_width=0.3, shrink_factor=0.5

connectionstyle : str 或 ConnectionStyle 或 None, 可选, 默认: 'arc3'str 或

连接 posAposBConnectionStyle。如果是一个字符串,它应该是可用连接样式名称之一,带有可选的逗号分隔属性。以下连接样式可用:

名称

Attrs

Arc3

arc3

rad=0.0

Angle3

angle3

angleA=90, angleB=0

角度

angle

angleA=90, angleB=0, rad=0.0

arc

angleA=0, angleB=0, armA=None, armB=None, rad=0.0

酒吧

bar

armA=0.0, armB=0.0, fraction=0.3, angle=None

patchA, patchB : Patch, 默认: None补丁,默认值:无

分别是头部和尾部的补丁。

shrinkA, shrinkB浮点数,默认值:2

箭头的尾部和头部的收缩量,单位为点。

mutation_scalefloat, 默认值: 1

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

mutation_aspectNone 或 float, 默认: None

矩形的高度将在突变前被此值压缩,而突变后的盒子将被其倒数拉伸。

其他参数:
**kwargs : Patch 属性, 可选补丁属性,可选

以下是可用的 Patch 属性列表:

属性

描述

agg_filter

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

alpha

未知

animated

布尔

抗锯齿 或 aa

布尔值或无

capstyle

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

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

FigureSubFigure

填充

布尔

gid

str

hatch

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

in_layout

布尔

joinstyle

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

标签

对象

linestyle 或 ls

{'-', '--', '-.', ':', '', (偏移, 开-关序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

path_effects

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

可见

布尔

zorder

float

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

draw(renderer)[源代码][源代码]#

使用给定的渲染器绘制艺术家(及其子项)。

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

参数:
渲染器 : RendererBase 子类。RendererBase 子类。

注释

此方法在 Artist 子类中被重写。

get_arrowstyle()[源代码][源代码]#

返回箭头样式对象。

get_connectionstyle()[源代码][源代码]#

返回使用的 ConnectionStyle

get_mutation_aspect()[源代码][源代码]#

返回 bbox 突变的纵横比。

get_mutation_scale()[源代码][源代码]#

返回突变比例。

返回:
标量
get_path()[源代码][源代码]#

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

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>, 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>)[源代码]#

一次性设置多个属性。

支持的属性有

属性

描述

agg_filter

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

alpha

标量或无

animated

布尔

抗锯齿 或 aa

布尔值或无

arrowstyle

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

capstyle

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

clip_box

BboxBase 或 None

clip_on

布尔

clip_path

补丁或(路径,变换)或无

颜色

color

connectionstyle

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

edgecolor 或 ec

color or None

facecolor 或 fc

color or None

figure

FigureSubFigure

填充

布尔

gid

str

hatch

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

in_layout

布尔

joinstyle

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

标签

对象

linestyle 或 ls

{'-', '--', '-.', ':', '', (偏移, 开-关序列), ...}

linewidth 或 lw

浮点数或无

鼠标悬停

布尔

mutation_aspect

float

mutation_scale

float

patchA

patches.Patch

patchB

patches.Patch

path_effects

AbstractPathEffect 列表

picker

None 或 bool 或 float 或 callable

位置

未知

光栅化

布尔

sketch_params

(scale: float, length: float, randomness: float)

snap

布尔值或无

transform

Transform

url

str

可见

布尔

zorder

float

set_arrowstyle(arrowstyle=None, **kwargs)[源代码][源代码]#

设置箭头样式,可能带有进一步的属性。

不会重复使用前一个箭头样式的属性。

没有参数(或使用 arrowstyle=None),可用的框样式将作为人类可读的字符串返回。

参数:
arrowstyle : str 或 ArrowStylestr 或

箭头的样式:可以是 ArrowStyle 实例,或是一个字符串,该字符串是样式名称,并且可选地以逗号分隔的属性(例如,"Fancy,head_length=0.2")。这样的字符串用于构造一个 ArrowStyle 对象,如该类文档中所述。

以下箭头样式可用:

名称

Attrs

曲线

-

曲线A

<-

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

曲线B

->

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

曲线AB

<->

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

曲线填充

<|-

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

曲线填充B

-|>

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

曲线填充AB

<|-|>

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

head_length=0.5, head_width=0.5, tail_width=0.2

花哨

fancy

head_length=0.4, head_width=0.4, tail_width=0.4

楔子

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)[源代码][源代码]#

设置连接样式,可能带有进一步的属性。

不会重复使用前一个连接样式的属性。

没有参数(或使用 connectionstyle=None),可用的框样式将作为人类可读的字符串返回。

参数:
connectionstyle : str 或 ConnectionStylestr 或

连接的样式:可以是 ConnectionStyle 实例,或是一个字符串,该字符串是样式名称,并且可选地包含逗号分隔的属性(例如 "Arc,armA=30,rad=10")。这样的字符串用于构造 ConnectionStyle 对象,如该类文档中所述。

以下连接样式可用:

名称

Attrs

Arc3

arc3

rad=0.0

Angle3

angle3

angleA=90, angleB=0

角度

angle

angleA=90, angleB=0, rad=0.0

arc

angleA=0, angleB=0, armA=None, armB=None, rad=0.0

酒吧

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)[源代码][源代码]#

设置 bbox 变形的纵横比。

参数:
方面float
set_mutation_scale(scale)[源代码][源代码]#

设置突变比例。

参数:
比例float
set_patchA(patchA)[源代码][源代码]#

设置尾部补丁。

参数:
patchApatches.Patch
set_patchB(patchB)[源代码][源代码]#

设置头部补丁。

参数:
patchBpatches.Patch
set_positions(posA, posB)[源代码][源代码]#

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

参数:
posA, posBNone, 元组

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

使用 matplotlib.patches.FancyArrowPatch 的示例#

饼图条

Bar of pie

括号箭头上的角度注释

Angle annotations on bracket arrows

Arrow 指南

Arrow guide

多轴动画

Multiple Axes animation

注解

Annotations