### Navigation

- index
- modules |
- next |
- previous |
- home|
- examples|
- tutorials|
- pyplot|
- docs »
- The Matplotlib API »
- patches »

# matplotlib.patches.FancyArrowPatch

class `matplotlib.patches.``FancyArrowPatch`(posA=None, posB=None, path=None, arrowstyle=’simple’, arrow_transmuter=None, connectionstyle=’arc3’, connector=None, patchA=None, patchB=None, shrinkA=2, shrinkB=2, mutation_scale=1, mutation_aspect=None, dpi_cor=1, **kwargs)

  A fancy arrow patch. It draws an arrow using the `ArrowStyle`.

  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.

  If posA and posB are given, a path connecting two points is created according to connectionstyle. The path will be clipped with patchA and patchB and further shrunken by shrinkA and shrinkB. An arrow is drawn along this resulting path using the arrowstyle parameter.

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

  > Parameters: | posA, posB : None, tuple, optional (default: None) (x,y) coordinates of arrow tail and arrow head respectively. path : None, Path (default: None) `matplotlib.path.Path` instance. If provided, an arrow is drawn along this path and patchA, patchB, shrinkA, and shrinkB are ignored. arrowstyle : str or ArrowStyle, optional (default: ‘simple’) Describes how the fancy arrow will be drawn. It can be string of the available arrowstyle names, with optional comma-separated attributes, or an `ArrowStyle` instance. The optional attributes are meant to be scaled with the mutation_scale. The following arrow styles are available:
  > Class | Name | Attrs
  > --- | --- | ---
  > Curve | `-` | None
  > CurveB | `->` | head_length=0.4,head_width=0.2
  > BracketB | `-[` | widthB=1.0,lengthB=0.2,angleB=None
  > CurveFilledB | `-|>` | head_length=0.4,head_width=0.2
  > CurveA | `<-` | head_length=0.4,head_width=0.2
  > CurveAB | `<->` | head_length=0.4,head_width=0.2
  > CurveFilledA | `<|-` | head_length=0.4,head_width=0.2
  > CurveFilledAB | `<|-|>` | head_length=0.4,head_width=0.2
  > BracketA | `]-` | widthA=1.0,lengthA=0.2,angleA=None
  > BracketAB | `]-[` | widthA=1.0,lengthA=0.2,angleA=None,widthB=1.0,lengthB=0.2,angleB=None
  > Fancy | `fancy` | head_length=0.4,head_width=0.4,tail_width=0.4
  > Simple | `simple` | head_length=0.5,head_width=0.5,tail_width=0.2
  > Wedge | `wedge` | tail_width=0.3,shrink_factor=0.5
  > BarAB | `|-|` | widthA=1.0,angleA=None,widthB=1.0,angleB=None
  > arrow_transmuter : Ignored connectionstyle : str, ConnectionStyle, or None, optional (default: ‘arc3’) Describes how posA and posB are connected. It can be an instance of the `ConnectionStyle` class or a string of the connectionstyle name, with optional comma-separated attributes. The following connection styles are available:
  > Class | Name | Attrs
  > --- | --- | ---
  > Angle | `angle` | angleA=90,angleB=0,rad=0.0
  > Angle3 | `angle3` | angleA=90,angleB=0
  > Arc | `arc` | angleA=0,angleB=0,armA=None,armB=None,rad=0.0
  > Arc3 | `arc3` | rad=0.0
  > Bar | `bar` | armA=0.0,armB=0.0,fraction=0.3,angle=None
  connector : Ignored patchA, patchB : None, Patch, optional (default: None) Head and tail patch respectively. `matplotlib.patch.Patch` instance. shrinkA, shrinkB : scalar, optional (default: 2) Shrinking factor of the tail and head of the arrow respectively mutation_scale : scalar, optional (default: 1) Value with which attributes of arrowstyle (e.g., head_length) will be scaled. mutation_aspect : None, scalar, optional (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. dpi_cor : scalar, optional (default: 1) dpi_cor is currently used for linewidth-related things and shrink factor. Mutation scale is affected by this.

  Notes

  Valid kwargs are:

  > Property | Description
  > --- | ---
  > `agg_filter` | unknown
  > `alpha` | float or None
  > `animated` | [True | False]
  > `antialiased` or aa | [True | False] or None for default
  > `axes` | an `Axes` instance
  > `capstyle` | [‘butt’ | ‘round’ | ‘projecting’]
  > `clip_box` | a `matplotlib.transforms.Bbox` instance
  > `clip_on` | [True | False]
  > `clip_path` | [ (`Path`, `Transform`) | `Patch` | None ]
  > `color` | matplotlib color spec
  > `contains` | a callable function
  > `edgecolor` or ec | mpl color spec, None, ‘none’, or ‘auto’
  > `facecolor` or fc | mpl color spec, or None for default, or ‘none’ for no color
  > `figure` | a `matplotlib.figure.Figure` instance
  > `fill` | [True | False]
  > `gid` | an id string
  > `hatch` | [‘/’ | ‘' | ‘|’ | ‘-‘ | ‘+’ | ‘x’ | ‘o’ | ‘O’ | ‘.’ | ‘*’]
  > `joinstyle` | [‘miter’ | ‘round’ | ‘bevel’]
  > `label` | string or anything printable with ‘%s’ conversion.
  > `linestyle` or ls | [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | `'-'` | `'--'` | `'-.'` | `':'` | `'None'` | `' '` | `''`]
  > `linewidth` or lw | float or None for default
  > `path_effects` | unknown
  > `picker` | [None|float|boolean|callable]
  > `rasterized` | [True | False | None]
  > `sketch_params` | unknown
  > `snap` | unknown
  > `transform` | `Transform` instance
  > `url` | a url string
  > `visible` | [True | False]
  > `zorder` | any number