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