mpl_toolkits.axes_grid1.anchored_artists.AnchoredDirectionArrows

class mpl_toolkits.axes_grid1.anchored_artists.AnchoredDirectionArrows(transform, label_x, label_y, length=0.15, fontsize=0.08, loc=2, angle=0, aspect_ratio=1, pad=0.4, borderpad=0.4, frameon=False, color='w', alpha=1, sep_x=0.01, sep_y=0, fontproperties=None, back_length=0.15, head_width=10, head_length=15, tail_width=2, text_props=None, arrow_props=None, **kwargs)[source]

Bases: matplotlib.offsetbox.AnchoredOffsetbox

Draw two perpendicular arrows to indicate directions.

Parameters:
transformmatplotlib.transforms.Transform

The transformation object for the coordinate system in use, i.e., matplotlib.axes.Axes.transAxes.

label_x, label_ystr

Label text for the x and y arrows

lengthfloat, default: 0.15

Length of the arrow, given in coordinates of transform.

fontsizefloat, default: 0.08

Size of label strings, given in coordinates of transform.

locint, default: 2

Location of the direction arrows. Valid location codes are:

'upper right'  : 1,
'upper left'   : 2,
'lower left'   : 3,
'lower right'  : 4,
'right'        : 5,
'center left'  : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center'       : 10
anglefloat, default: 0

The angle of the arrows in degrees.

aspect_ratiofloat, default: 1

The ratio of the length of arrow_x and arrow_y. Negative numbers can be used to change the direction.

padfloat, default: 0.4

Padding around the labels and arrows, in fraction of the font size.

borderpadfloat, default: 0.4

Border padding, in fraction of the font size.

frameonbool, default: False

If True, draw a box around the arrows and labels.

colorstr, default: 'white'

Color for the arrows and labels.

alphafloat, default: 1

Alpha values of the arrows and labels

sep_x, sep_yfloat, default: 0.01 and 0 respectively

Separation between the arrows and labels in coordinates of transform.

fontpropertiesmatplotlib.font_manager.FontProperties, optional

Font properties for the label text.

back_lengthfloat, default: 0.15

Fraction of the arrow behind the arrow crossing.

head_widthfloat, default: 10

Width of arrow head, sent to ArrowStyle.

head_lengthfloat, default: 15

Length of arrow head, sent to ArrowStyle.

tail_widthfloat, default: 2

Width of arrow tail, sent to ArrowStyle.

text_props, arrow_propsdict

Properties of the text and arrows, passed to textpath.TextPath and patches.FancyArrowPatch.

**kwargs

Keyworded arguments to pass to matplotlib.offsetbox.AnchoredOffsetbox.

Notes

If prop is passed as a keyword argument, but fontproperties is not, then prop is be assumed to be the intended fontproperties. Using both prop and fontproperties is not supported.

Examples

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> from mpl_toolkits.axes_grid1.anchored_artists import (
...     AnchoredDirectionArrows)
>>> fig, ax = plt.subplots()
>>> ax.imshow(np.random.random((10, 10)))
>>> arrows = AnchoredDirectionArrows(ax.transAxes, '111', '110')
>>> ax.add_artist(arrows)
>>> fig.show()

Using several of the optional parameters, creating downward pointing arrow and high contrast text labels.

>>> import matplotlib.font_manager as fm
>>> fontprops = fm.FontProperties(family='monospace')
>>> arrows = AnchoredDirectionArrows(ax.transAxes, 'East', 'South',
...                                  loc='lower left', color='k',
...                                  aspect_ratio=-1, sep_x=0.02,
...                                  sep_y=-0.01,
...                                  text_props={'ec':'w', 'fc':'k'},
...                                  fontproperties=fontprops)
Attributes:
arrow_x, arrow_ymatplotlib.patches.FancyArrowPatch

Arrow x and y

text_path_x, text_path_ymatplotlib.textpath.TextPath

Path for arrow labels

p_x, p_ymatplotlib.patches.PathPatch

Patch for arrow labels

boxmatplotlib.offsetbox.AuxTransformBox

Container for the arrows and labels.

__init__(transform, label_x, label_y, length=0.15, fontsize=0.08, loc=2, angle=0, aspect_ratio=1, pad=0.4, borderpad=0.4, frameon=False, color='w', alpha=1, sep_x=0.01, sep_y=0, fontproperties=None, back_length=0.15, head_width=10, head_length=15, tail_width=2, text_props=None, arrow_props=None, **kwargs)[source]

Draw two perpendicular arrows to indicate directions.

Parameters:
transformmatplotlib.transforms.Transform

The transformation object for the coordinate system in use, i.e., matplotlib.axes.Axes.transAxes.

label_x, label_ystr

Label text for the x and y arrows

lengthfloat, default: 0.15

Length of the arrow, given in coordinates of transform.

fontsizefloat, default: 0.08

Size of label strings, given in coordinates of transform.

locint, default: 2

Location of the direction arrows. Valid location codes are:

'upper right'  : 1,
'upper left'   : 2,
'lower left'   : 3,
'lower right'  : 4,
'right'        : 5,
'center left'  : 6,
'center right' : 7,
'lower center' : 8,
'upper center' : 9,
'center'       : 10
anglefloat, default: 0

The angle of the arrows in degrees.

aspect_ratiofloat, default: 1

The ratio of the length of arrow_x and arrow_y. Negative numbers can be used to change the direction.

padfloat, default: 0.4

Padding around the labels and arrows, in fraction of the font size.

borderpadfloat, default: 0.4

Border padding, in fraction of the font size.

frameonbool, default: False

If True, draw a box around the arrows and labels.

colorstr, default: 'white'

Color for the arrows and labels.

alphafloat, default: 1

Alpha values of the arrows and labels

sep_x, sep_yfloat, default: 0.01 and 0 respectively

Separation between the arrows and labels in coordinates of transform.

fontpropertiesmatplotlib.font_manager.FontProperties, optional

Font properties for the label text.

back_lengthfloat, default: 0.15

Fraction of the arrow behind the arrow crossing.

head_widthfloat, default: 10

Width of arrow head, sent to ArrowStyle.

head_lengthfloat, default: 15

Length of arrow head, sent to ArrowStyle.

tail_widthfloat, default: 2

Width of arrow tail, sent to ArrowStyle.

text_props, arrow_propsdict

Properties of the text and arrows, passed to textpath.TextPath and patches.FancyArrowPatch.

**kwargs

Keyworded arguments to pass to matplotlib.offsetbox.AnchoredOffsetbox.

Notes

If prop is passed as a keyword argument, but fontproperties is not, then prop is be assumed to be the intended fontproperties. Using both prop and fontproperties is not supported.

Examples

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> from mpl_toolkits.axes_grid1.anchored_artists import (
...     AnchoredDirectionArrows)
>>> fig, ax = plt.subplots()
>>> ax.imshow(np.random.random((10, 10)))
>>> arrows = AnchoredDirectionArrows(ax.transAxes, '111', '110')
>>> ax.add_artist(arrows)
>>> fig.show()

Using several of the optional parameters, creating downward pointing arrow and high contrast text labels.

>>> import matplotlib.font_manager as fm
>>> fontprops = fm.FontProperties(family='monospace')
>>> arrows = AnchoredDirectionArrows(ax.transAxes, 'East', 'South',
...                                  loc='lower left', color='k',
...                                  aspect_ratio=-1, sep_x=0.02,
...                                  sep_y=-0.01,
...                                  text_props={'ec':'w', 'fc':'k'},
...                                  fontproperties=fontprops)
Attributes:
arrow_x, arrow_ymatplotlib.patches.FancyArrowPatch

Arrow x and y

text_path_x, text_path_ymatplotlib.textpath.TextPath

Path for arrow labels

p_x, p_ymatplotlib.patches.PathPatch

Patch for arrow labels

boxmatplotlib.offsetbox.AuxTransformBox

Container for the arrows and labels.

__module__ = 'mpl_toolkits.axes_grid1.anchored_artists'

Examples using mpl_toolkits.axes_grid1.anchored_artists.AnchoredDirectionArrows