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 = 8 fig = 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…