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…