Matplotlib.patches.ArrowStyle class in Python

Matplotlib is an amazing visualization library in Python for 2D plots of arrays. Matplotlib is a multi-platform data visualization library built on NumPy arrays and designed to work with the broader SciPy stack.
matplotlib.patches.ArrowStyle
The matplotlib.patches.ArrowStyle class  is a container class that defines many arrowstyle classes, that are used to make an arrow path along a provided path. These are primarily used with FancyArrowpatch.
Syntax: class matplotlib.patches.ArrowStyle
The below subclasses are defined for various arrowstyle;
| Class | Name | Attributes | 
|---|---|---|
| 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 | 
Example 1:
import matplotlib.pyplot as plt from matplotlib.patches import ArrowStyle   plt.figure(1, figsize =(9, 9))   ArrowStyle("Wedge")   ax = plt.subplot(111)   ax.annotate("",             xy =(0.2, 0.2), xycoords ='data',             xytext =(0.8, 0.8), textcoords ='data',             arrowprops = dict(arrowstyle ="Wedge",                             connectionstyle ="arc3"),              )   plt.show()  | 
Output:
Example 2:
import matplotlib.patches as mpatch import matplotlib.pyplot as plt     figheight = 8fig = plt.figure(figsize =(9, figheight), dpi = 80) fontsize = 0.4 * fig.dpi   def make_boxstyles(ax):     styles = mpatch.BoxStyle.get_styles()       for i, (stylename, styleclass) in enumerate(sorted(styles.items())):         ax.text(0.5,                  (float(len(styles)) - 0.5 - i)/len(styles),                 stylename,                 ha ="center",                 size = fontsize,                 transform = ax.transAxes,                 bbox = dict(boxstyle = stylename,                              fc ="g", ec ="r"))   def make_arrowstyles(ax):     styles = mpatch.ArrowStyle.get_styles()       ax.set_xlim(0, 4)     ax.set_ylim(0, figheight)       for i, (stylename, styleclass) in enumerate(sorted(styles.items())):                   # /figheight         y = (float(len(styles)) - 0.25 - i         p = mpatch.Circle((3.2, y), 0.2, fc ="r")         ax.add_patch(p)           ax.annotate(stylename, (3.2, y),                     (2., y),                                           # xycoords ="figure fraction",                     # textcoords ="figure fraction",                     ha ="right", va ="center",                     size = fontsize,                     arrowprops = dict(arrowstyle = stylename,                                     patchB = p,                                     shrinkA = 5,                                     shrinkB = 5,                                     fc ="w", ec ="r",                                     connectionstyle ="arc3, rad =-0.05",                                     ),                     bbox = dict(boxstyle ="square", fc ="g"))       ax.xaxis.set_visible(False)     ax.yaxis.set_visible(False)     ax1 = fig.add_subplot(121, frameon = False, xticks =[], yticks =[]) make_boxstyles(ax1)   ax2 = fig.add_subplot(122, frameon = False, xticks =[], yticks =[]) make_arrowstyles(ax2)     plt.show()  | 
Output:
<!–
–>

                Matplotlib.patches.CirclePolygon class in Python
            

                Matplotlib.patches.Arrow Class in Python
            

                Matplotlib.patches.ConnectionPatch class in Python
            

                Matplotlib.patches.Circle class in Python
            

                Matplotlib.patches.Wedge class in Python
            

                Matplotlib.patches.RegularPolygon class in Python
            

                Matplotlib.patches.PathPatch in Python
            

                matplotlib.patches.Rectangle in Python
            

                Python Bokeh – Plotting Multiple Patches on a Graph
            

                Python Bokeh – Plotting Patches on a Graph
            
				
					


Please Login to comment…