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.


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

lengthint or float, optional

Length of the arrow, given in coordinates of transform. Defaults to 0.15.

fontsizeint, optional

Size of label strings, given in coordinates of transform. Defaults to 0.08.

locint, optional

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

Defaults to 2.

angleint or float, optional

The angle of the arrows in degrees. Defaults to 0.

aspect_ratioint or float, optional

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

padint or float, optional

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

borderpadint or float, optional

Border padding, in fraction of the font size. Defaults to 0.4.

frameonbool, optional

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

colorstr, optional

Color for the arrows and labels. Defaults to white.

alphaint or float, optional

Alpha values of the arrows and labels Defaults to 1.

sep_x, sep_yint or float, optional

Separation between the arrows and labels in coordinates of transform. Defaults to 0.01 and 0.

fontpropertiesmatplotlib.font_manager.FontProperties, optional

Font properties for the label text.

back_lengthfloat, optional

Fraction of the arrow behind the arrow crossing. Defaults to 0.15.

head_widthint or float, optional

Width of arrow head, sent to ArrowStyle. Defaults to 10.

head_lengthint or float, optional

Length of arrow head, sent to ArrowStyle. Defaults to 15.

tail_widthint or float, optional

Width of arrow tail, sent to ArrowStyle. Defaults to 2.

text_props, arrow_propsdict

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


Keyworded arguments to pass to matplotlib.offsetbox.AnchoredOffsetbox.


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.


>>> 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)

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)
arrow_x, arrow_ymatplotlib.patches.FancyArrowPatch

Arrow x and y

text_path_x, text_path_ymatplotlib.text.TextPath

Path for arrow labels

p_x, p_ymatplotlib.patches.PathPatch

Patch for arrow labels


Container for the arrows and labels.

Examples using mpl_toolkits.axes_grid1.anchored_artists.AnchoredDirectionArrows