| [ Web Proxy ] |
| Viewing: https://matplotlib.org/devdocs/api/_as_gen/matplotlib.patches.FancyArrowPatch.html | [Back] [Original] |
Bases: Patch
A fancy arrow patch.
It draws an arrow using the ArrowStyle. It is primarily used by the
annotate method. For most purposes, use the annotate method for
drawing arrows.
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.
Defining the arrow position and path
There are two ways to define the arrow position and path:
Start, end and connection: The typical approach is to define the start and end points of the arrow using posA and posB. The curve between these two can further be configured using connectionstyle.
If given, the arrow curve is clipped by patchA and patchB, allowing it to start/end at the border of these patches. Additionally, the arrow curve can be shortened by shrinkA and shrinkB to create a margin between start/end (after possible clipping) and the drawn arrow.
path: Alternatively if path is provided, an arrow is drawn along this Path. In this case, connectionstyle, patchA, patchB, shrinkA, and shrinkB are ignored.
Styling
The arrowstyle defines the styling of the arrow head, tail and shaft.
The resulting arrows can be styled further by setting the Patch
properties such as linewidth, color, facecolor, edgecolor
etc. via keyword arguments.
(x, y) coordinates of start and end point of the arrow. The actually drawn start and end positions may be modified through patchA, patchB, shrinkA, and shrinkB.
posA, posB are exclusive of path.
Path, optionalIf provided, an arrow is drawn along this path and patchA, patchB, shrinkA, and shrinkB are ignored.
path is exclusive of posA, posB.
ArrowStyle, default: 'simple'The styling of arrow head, tail and shaft. This can be
ArrowStyle or one of its subclasses
The shorthand string name (e.g. "->") as given in the table below, optionally containing a comma-separated list of style parameters, e.g. "->, head_length=10, head_width=5".
The style parameters are scaled by mutation_scale.
The following arrow styles are available. See also Annotation arrow style reference.
Class |
Name |
Parameters |
|---|---|---|
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 |
|
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 |
Only the styles <|-, -|>, <|-|> simple, fancy
and wedge contain closed paths and can be filled.
ConnectionStyle or None, optional, default: 'arc3'ConnectionStyle with which posA and posB are connected.
This can be
ConnectionStyle or one of its subclasses
The shorthand string name as given in the table below, e.g. "arc3".
Class |
Name |
Parameters |
|---|---|---|
Arc3 |
|
rad=0.0 |
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 |
Ignored if path is provided.
Patch, default: NoneOptional Patches at posA and posB, respectively. If given, the arrow path is clipped by these patches such that head and tail are at the border of the patches.
Ignored if path is provided.
Shorten the arrow path at posA and posB by this amount in points. This allows to add a margin between the intended start/end points and the arrow.
Ignored if path is provided.
Value with which attributes of arrowstyle (e.g., head_length) will be scaled.
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.
Patch properties, optionalHere 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 |
|
|
bool or None |
|
|
|
|
bool |
|
Patch or (Path, Transform) or None |
|
color or None |
|
color or None |
|
color or None |
|
bool |
|
{'nonzero', 'evenodd'} |
|
str |
|
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'} |
|
unknown |
|
color or 'edge' or None |
|
bool |
|
|
|
object |
|
float or None |
|
bool |
|
list of |
|
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 and
joinstyle for FancyArrowPatch are set to "round".
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).
RendererBase subclass.Notes
This method is overridden in the Artist subclasses.
Return the ConnectionStyle used.
Set multiple properties at once.
a.set(a=A, b=B, c=C)
is equivalent to
a.set_a(A)
a.set_b(B)
a.set_c(C)
In addition to the full property names, aliases are also supported, e.g.
set(lw=2) is equivalent to set(linewidth=2), but it is an error
to pass both simultaneously.
The order of the individual setter calls matches the order of parameters
in set(). However, most properties do not depend on each other so
that order is rarely relevant.
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
float or None
bool
antialiasedoraabool or None
[ '-' | '<-' | '->' | '<->' | '<|-' | '-|>' | '<|-|>' | ']-' | '-[' | ']-[' | '|-|' | ']->' | '<-[' | 'simple' | 'fancy' | 'wedge' ]
CapStyleor {'butt', 'projecting', 'round'}
BboxBaseor Nonebool
Patch or (Path, Transform) or None
[ 'arc3' | 'angle3' | 'angle' | 'arc' | 'bar' ]
color or None
color or None
color or None
bool
{'nonzero', 'evenodd'}
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
unknown
color or 'edge' or None
bool
JoinStyleor {'miter', 'round', 'bevel'}object
float or None
bool
float
float
list of
AbstractPathEffectNone or bool or float or callable
unknown
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
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.
ArrowStyleThe 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 a ArrowStyle object, as documented in that class.
The following arrow styles are available:
Class |
Name |
Parameters |
|---|---|---|
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 |
|
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 |
Additional attributes for the arrow style. See the table above for supported parameters.
Examples
set_arrowstyle("Fancy,head_length=0.2")
set_arrowstyle("fancy", head_length=0.2)
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.
ConnectionStyleThe 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 a ConnectionStyle object, as documented in that class.
The following connection styles are available:
Class |
Name |
Parameters |
|---|---|---|
Arc3 |
|
rad=0.0 |
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 |
Additional attributes for the connection style. See the table above for supported parameters.
Examples
set_connectionstyle("Arc,armA=30,rad=10")
set_connectionstyle("arc", armA=30, rad=10)
Set the aspect ratio of the bbox mutation.
Set the tail patch.
patches.PatchSet the head patch.
patches.Patchmatplotlib.patches.FancyArrowPatch#| Web Proxy Viewer | New URL | Original Page |