matplotlib.patches.ArrowStyle#

class matplotlib.patches.ArrowStyle(stylename, **kwargs)[source]#

Bases: _Style

ArrowStyle is a container class which defines several arrowstyle classes, which is used to create an arrow path along a given path. These are mainly used with FancyArrowPatch.

An arrowstyle object can be either created as:

ArrowStyle.Fancy(head_length=.4, head_width=.4, tail_width=.4)

or:

ArrowStyle("Fancy", head_length=.4, head_width=.4, tail_width=.4)

or:

ArrowStyle("Fancy, head_length=.4, head_width=.4, tail_width=.4")

The following classes are defined

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

For an overview of the visual appearance, see Annotation arrow style reference.

An instance of any arrow style class is a callable object, whose call signature is:

__call__(self, path, mutation_size, linewidth, aspect_ratio=1.)

and it returns a tuple of a Path instance and a boolean value. path is a Path instance along which the arrow will be drawn. mutation_size and aspect_ratio have the same meaning as in BoxStyle. linewidth is a line width to be stroked. This is meant to be used to correct the location of the head so that it does not overshoot the destination point, but not all classes support it.

Notes

angleA and angleB specify the orientation of the bracket, as either a clockwise or counterclockwise angle depending on the arrow type. 0 degrees means perpendicular to the line connecting the arrow's head and tail.

(Source code, 2x.png, png)

Return the instance of the subclass with the given style name.

class BarAB(widthA=1.0, angleA=0, widthB=1.0, angleB=0)[source]#

Bases: _Curve

An arrow with vertical bars | at both ends.

Parameters:
widthA, widthBfloat, default: 1.0

Width of the bracket.

angleA, angleBfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = '|-|'#
class BracketA(widthA=1.0, lengthA=0.2, angleA=0)[source]#

Bases: _Curve

An arrow with an outward square bracket at its start.

Parameters:
widthAfloat, default: 1.0

Width of the bracket.

lengthAfloat, default: 0.2

Length of the bracket.

angleAfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = ']-'#
class BracketAB(widthA=1.0, lengthA=0.2, angleA=0, widthB=1.0, lengthB=0.2, angleB=0)[source]#

Bases: _Curve

An arrow with outward square brackets at both ends.

Parameters:
widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = ']-['#
class BracketB(widthB=1.0, lengthB=0.2, angleB=0)[source]#

Bases: _Curve

An arrow with an outward square bracket at its end.

Parameters:
widthBfloat, default: 1.0

Width of the bracket.

lengthBfloat, default: 0.2

Length of the bracket.

angleBfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = '-['#
class BracketCurve(widthA=1.0, lengthA=0.2, angleA=None)[source]#

Bases: _Curve

An arrow with an outward square bracket at its start and a head at the end.

Parameters:
widthAfloat, default: 1.0

Width of the bracket.

lengthAfloat, default: 0.2

Length of the bracket.

angleAfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = ']->'#
class Curve[source]#

Bases: _Curve

A simple curve without any arrow head.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

class 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)[source]#

Bases: _Curve

An arrow with a head at its start point.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '<-'#
class 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)[source]#

Bases: _Curve

An arrow with heads both at the start and the end point.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '<->'#
class 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)[source]#

Bases: _Curve

An arrow with a head at its end point.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '->'#
class CurveBracket(widthB=1.0, lengthB=0.2, angleB=None)[source]#

Bases: _Curve

An arrow with an outward square bracket at its end and a head at the start.

Parameters:
widthBfloat, default: 1.0

Width of the bracket.

lengthBfloat, default: 0.2

Length of the bracket.

angleBfloat, default: 0 degrees

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

arrow = '<-['#
class 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)[source]#

Bases: _Curve

An arrow with filled triangle head at the start.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '<|-'#
class 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)[source]#

Bases: _Curve

An arrow with filled triangle heads at both ends.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '<|-|>'#
class 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)[source]#

Bases: _Curve

An arrow with filled triangle head at the end.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head, relative to mutation_size.

head_widthfloat, default: 0.2

Width of the arrow head, relative to mutation_size.

widthA, widthBfloat, default: 1.0

Width of the bracket.

lengthA, lengthBfloat, default: 0.2

Length of the bracket.

angleA, angleBfloat, default: 0

Orientation of the bracket, as a counterclockwise angle. 0 degrees means perpendicular to the line.

scaleA, scaleBfloat, default: mutation_size

The scale of the brackets.

arrow = '-|>'#
class Fancy(head_length=0.4, head_width=0.4, tail_width=0.4)[source]#

Bases: _Base

A fancy arrow. Only works with a quadratic Bézier curve.

Parameters:
head_lengthfloat, default: 0.4

Length of the arrow head.

head_widthfloat, default: 0.4

Width of the arrow head.

tail_widthfloat, default: 0.4

Width of the arrow tail.

transmute(path, mutation_size, linewidth)[source]#

The transmute method is the very core of the ArrowStyle class and must be overridden in the subclasses. It receives the path object along which the arrow will be drawn, and the mutation_size, with which the arrow head etc. will be scaled. The linewidth may be used to adjust the path so that it does not pass beyond the given points. It returns a tuple of a Path instance and a boolean. The boolean value indicate whether the path can be filled or not. The return value can also be a list of paths and list of booleans of the same length.

class Simple(head_length=0.5, head_width=0.5, tail_width=0.2)[source]#

Bases: _Base

A simple arrow. Only works with a quadratic Bézier curve.

Parameters:
head_lengthfloat, default: 0.5

Length of the arrow head.

head_widthfloat, default: 0.5

Width of the arrow head.

tail_widthfloat, default: 0.2

Width of the arrow tail.

transmute(path, mutation_size, linewidth)[source]#

The transmute method is the very core of the ArrowStyle class and must be overridden in the subclasses. It receives the path object along which the arrow will be drawn, and the mutation_size, with which the arrow head etc. will be scaled. The linewidth may be used to adjust the path so that it does not pass beyond the given points. It returns a tuple of a Path instance and a boolean. The boolean value indicate whether the path can be filled or not. The return value can also be a list of paths and list of booleans of the same length.

class Wedge(tail_width=0.3, shrink_factor=0.5)[source]#

Bases: _Base

Wedge(?) shape. Only works with a quadratic Bézier curve. The start point has a width of the tail_width and the end point has a width of 0. At the middle, the width is shrink_factor*x*tail_width.

Parameters:
tail_widthfloat, default: 0.3

Width of the tail.

shrink_factorfloat, default: 0.5

Fraction of the arrow width at the middle point.

transmute(path, mutation_size, linewidth)[source]#

The transmute method is the very core of the ArrowStyle class and must be overridden in the subclasses. It receives the path object along which the arrow will be drawn, and the mutation_size, with which the arrow head etc. will be scaled. The linewidth may be used to adjust the path so that it does not pass beyond the given points. It returns a tuple of a Path instance and a boolean. The boolean value indicate whether the path can be filled or not. The return value can also be a list of paths and list of booleans of the same length.

Examples using matplotlib.patches.ArrowStyle#

Angle annotations on bracket arrows

Angle annotations on bracket arrows

Annotation arrow style reference

Annotation arrow style reference