matplotlib.patches.FancyArrowPatch — Matplotlib 3.10.3 documentation (original) (raw)

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. It is primarily used by theannotate 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:

Styling

The arrowstyle defines the styling of the arrow head, tail and shaft. The resulting arrows can be styled further by setting the Patchproperties such as linewidth, color, facecolor, _edgecolor_etc. via keyword arguments.

Parameters:

posA, posB(float, float), optional

(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.

pathPath, optional

If provided, an arrow is drawn along this path and patchA,patchB, shrinkA, and shrinkB are ignored.

path is exclusive of posA, posB.

arrowstylestr or ArrowStyle, default: 'simple'

The styling of arrow head, tail and shaft. This can be

The style parameters are scaled by mutation_scale.

The following arrow styles are available. See alsoAnnotation arrow style reference.

Only the styles <|-, -|>, <|-|> simple, fancyand wedge contain closed paths and can be filled.

connectionstylestr or ConnectionStyle or None, optional, default: 'arc3'

ConnectionStyle with which posA and posB are connected. This can be

Ignored if path is provided.

patchA, patchBPatch, default: None

Optional 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.

shrinkA, shrinkBfloat, default: 2

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.

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:

**kwargsPatch properties, optional

Here is a list of available Patch properties:

In contrast to other patches, the default capstyle andjoinstyle for FancyArrowPatch are set to "round".

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_visiblereturns False).

Parameters:

rendererRendererBase subclass.

Notes

This method is overridden in the Artist subclasses.

get_arrowstyle()[source]#

Return the arrowstyle object.

get_connectionstyle()[source]#

Return the ConnectionStyle used.

get_mutation_aspect()[source]#

Return the aspect ratio of the bbox mutation.

get_mutation_scale()[source]#

Return the mutation scale.

Returns:

scalar

get_path()[source]#

Return the path of the arrow in the data coordinates.

set(*, agg_filter=, alpha=, animated=, antialiased=, arrowstyle=, capstyle=, clip_box=, clip_on=, clip_path=, color=, connectionstyle=, edgecolor=, facecolor=, fill=, gid=, hatch=, hatch_linewidth=, in_layout=, joinstyle=, label=, linestyle=, linewidth=, mouseover=, mutation_aspect=, mutation_scale=, patchA=, patchB=, path_effects=, picker=, positions=, rasterized=, sketch_params=, snap=, transform=, url=, visible=, zorder=)[source]#

Set multiple properties at once.

Supported properties are

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 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 a ArrowStyle object, as documented in that class.

The following arrow styles are available:

**kwargs

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_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 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 a ConnectionStyle object, as documented in that class.

The following connection styles are available:

**kwargs

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_mutation_aspect(aspect)[source]#

Set the aspect ratio of the bbox mutation.

Parameters:

aspectfloat

set_mutation_scale(scale)[source]#

Set the mutation scale.

Parameters:

scalefloat

set_patchA(patchA)[source]#

Set the tail patch.

Parameters:

patchApatches.Patch

set_patchB(patchB)[source]#

Set the head patch.

Parameters:

patchBpatches.Patch

set_positions(posA, posB)[source]#

Set the start and end positions of the connecting path.

Parameters:

posA, posBNone, tuple

(x, y) coordinates of arrow tail and arrow head respectively. IfNone use current value.

Examples using matplotlib.patches.FancyArrowPatch#