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]#
Bases:
Patch
A fancy arrow patch. It draws an arrow using the
ArrowStyle
.The head and tail positions are fixed at the specified start and end points of the arrow, but the size and shape (in display coordinates) of the arrow does not change when the axis is moved or zoomed.
There are two ways for defining an arrow:
If posA and posB are given, a path connecting two points is created according to connectionstyle. The path will be clipped with patchA and patchB and further shrunken by shrinkA and shrinkB. An arrow is drawn along this resulting path using the arrowstyle parameter.
Alternatively if path is provided, an arrow is drawn along this path and patchA, patchB, shrinkA, and shrinkB are ignored.
- Parameters:
- posA, posB(float, float), default: None
(x, y) coordinates of arrow tail and arrow head respectively.
- path
Path
, default: None If provided, an arrow is drawn along this path and patchA, patchB, shrinkA, and shrinkB are ignored.
- arrowstylestr or
ArrowStyle
, default: 'simple' The
ArrowStyle
with which the fancy arrow is drawn. If a string, it should be one of the available arrowstyle names, with optional comma-separated attributes. The optional attributes are meant to be scaled with the mutation_scale. The following arrow styles are available:Class
Name
Attrs
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
- connectionstylestr or
ConnectionStyle
or None, optional, default: 'arc3' The
ConnectionStyle
with which posA and posB are connected. If a string, it should be one of the available connectionstyle names, with optional comma-separated attributes. The following connection styles are available:Class
Name
Attrs
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
- patchA, patchB
Patch
, default: None Head and tail patches, respectively.
- shrinkA, shrinkBfloat, default: 2
Shrinking factor of the tail and head of the arrow respectively.
- mutation_scalefloat, default: 1
Value with which attributes of arrowstyle (e.g., head_length) will be scaled.
- mutation_aspectNone or float, default: None
The height of the rectangle will be squeezed by this value before the mutation and the mutated box will be stretched by the inverse of it.
- Other Parameters:
- **kwargs
Patch
properties, optional Here is a list of available
Patch
properties:Property
Description
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
unknown
bool
antialiased
or aabool or None
CapStyle
or {'butt', 'projecting', 'round'}bool
Patch or (Path, Transform) or None
color
edgecolor
or eccolor or None
facecolor
or fccolor or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyle
or {'miter', 'round', 'bevel'}object
linestyle
or ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
linewidth
or lwfloat or None
bool
None or bool or float or callable
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
In contrast to other patches, the default
capstyle
andjoinstyle
forFancyArrowPatch
are set to"round"
.
- **kwargs
- draw(renderer)[source]#
Draw the Artist (and its children) using the given renderer.
This has no effect if the artist is not visible (
Artist.get_visible
returns False).- Parameters:
- renderer
RendererBase
subclass.
- renderer
Notes
This method is overridden in the Artist subclasses.
- get_connectionstyle()[source]#
Return the
ConnectionStyle
used.
- 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>)[source]#
Set multiple properties at once.
Supported properties are
Property
Description
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
scalar or None
bool
antialiased
or aabool or None
CapStyle
or {'butt', 'projecting', 'round'}bool
Patch or (Path, Transform) or None
color
[ 'arc3' | 'angle3' | 'angle' | 'arc' | 'bar' ]
edgecolor
or eccolor or None
facecolor
or fccolor or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyle
or {'miter', 'round', 'bevel'}object
linestyle
or ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
linewidth
or lwfloat or None
bool
float
float
None or bool or float or callable
unknown
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
- set_arrowstyle(arrowstyle=None, **kwargs)[source]#
Set the arrow style, possibly with further attributes.
Attributes from the previous arrow style are not reused.
Without argument (or with
arrowstyle=None
), the available box styles are returned as a human-readable string.- Parameters:
- arrowstylestr or
matplotlib.patches.ArrowStyle
The style of the arrow: either a
ArrowStyle
instance, or a string, which is the style name and optionally comma separated attributes (e.g. "Fancy,head_length=0.2"). Such a string is used to construct aArrowStyle
object, as documented in that class.The following arrow styles are available:
%(ArrowStyle:table_and_accepts)s
- **kwargs
Additional attributes for the arrow style. See the table above for supported parameters.
- arrowstylestr or
Examples
set_arrowstyle("Fancy,head_length=0.2") set_arrowstyle("fancy", head_length=0.2)
- set_connectionstyle(connectionstyle=None, **kwargs)[source]#
Set the connection style, possibly with further attributes.
Attributes from the previous connection style are not reused.
Without argument (or with
connectionstyle=None
), the available box styles are returned as a human-readable string.- Parameters:
- connectionstylestr or
matplotlib.patches.ConnectionStyle
The style of the connection: either a
ConnectionStyle
instance, or a string, which is the style name and optionally comma separated attributes (e.g. "Arc,armA=30,rad=10"). Such a string is used to construct aConnectionStyle
object, as documented in that class.The following connection styles are available:
Class
Name
Attrs
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
Additional attributes for the connection style. See the table above for supported parameters.
- connectionstylestr or
Examples
set_connectionstyle("Arc,armA=30,rad=10") set_connectionstyle("arc", armA=30, rad=10)
- set_mutation_aspect(aspect)[source]#
Set the aspect ratio of the bbox mutation.
- Parameters:
- aspectfloat
- set_patchA(patchA)[source]#
Set the tail patch.
- Parameters:
- patchA
patches.Patch
- patchA
- set_patchB(patchB)[source]#
Set the head patch.
- Parameters:
- patchB
patches.Patch
- patchB