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:
<!–
–>











Please Login to comment…