Matplotlib.patches.Wedge 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.Wedge
The matplotlib.patches.Wedge class is used to add wedge-shaped patches in the plot. The wedge is centered at xy = (x, y) with a radius r and it sweeps theta1 to theta2 (in degrees). The partial wedge is drawn from inner radius r – width to outer radius r if width is given.
Syntax: class matplotlib.patches.Wedge(center, r, theta1, theta2, width=None, **kwargs)
Parameters:
- center: The center point of the the wedge.
- r: Radius of the wedge.
- theta1: First angle of sweep.
- theta2: Second angle of sweep.
- width: Width of the sweep
The kwargs attributes are given in the table below:
PROPERTY DESCRIPTION agg_filter a filter function that takes a (m, n, 3) float array and a dpi value that returns a (m, n, 3) array alpha float or None animated bool antialiased or aa unknown capstyle {‘butt’, ’round’, ‘projecting’} clip_box Bbox clip_on bool clip_path [(Path, Transform)|Patch|None] color color or sequence of rgba tuples contains callable edgecolor or ec or edgecolors color or None or ‘auto’ facecolor or fc or facecolors color or None figure figure fill bool gid str hatch {‘/’, ‘\’, ‘|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’} in_layout bool joinstyle {‘miter’, ’round’, ‘bevel’} linestyle or ls {‘-‘, ‘–‘, ‘-.’, ‘:’, ”, (offset, on-off-seq), …} linewidth or linewidths or lw float or None path_effects AbstractPathEffect picker None or bool or float or callable path_effects AbstractPathEffect picker float or callable[[Artist, Event], Tuple[bool, dict]] rasterized bool or None sketch_params (scale: float, length: float, randomness: float) snap bool or None transform matplotlib.transforms.Transform url str visible bool zorder float
Example 1:
Python3
import numpy as np from matplotlib.patches import Circle, Wedge, Polygon from matplotlib.collections import PatchCollection import matplotlib.pyplot as plt # Fixing random state for reproducibility np.random.seed( 19680801 ) fig, ax = plt.subplots() resolution = 50 # the number of vertices N = 3 x = np.random.rand(N) y = np.random.rand(N) radii = 0.1 * np.random.rand(N) patches = [] for x1, y1, r in zip (x, y, radii): circle = Circle((x1, y1), r) patches.append(circle) x = np.random.rand(N) y = np.random.rand(N) radii = 0.1 * np.random.rand(N) theta1 = 360.0 * np.random.rand(N) theta2 = 360.0 * np.random.rand(N) for x1, y1, r, t1, t2 in zip (x, y, radii, theta1, theta2): wedge = Wedge((x1, y1), r, t1, t2) patches.append(wedge) # Some limiting conditions on Wedge patches + = [ Wedge((. 3 , . 7 ), . 1 , 0 , 360 ), # Full circle Wedge((. 7 , . 8 ), . 2 , 0 , 360 , width = 0.05 ), # Full ring Wedge((. 8 , . 3 ), . 2 , 0 , 45 ), # Full sector Wedge((. 8 , . 3 ), . 2 , 45 , 90 , width = 0.10 ), # Ring sector ] for i in range (N): polygon = Polygon(np.random.rand(N, 2 ), True ) patches.append(polygon) colors = 100 * np.random.rand( len (patches)) p = PatchCollection(patches, alpha = 0.4 ) p.set_array(np.array(colors)) ax.add_collection(p) fig.colorbar(p, ax = ax) plt.show() |
Output:
Example 2:
Python3
import numpy as np import matplotlib.pyplot as plt fig, ax = plt.subplots(figsize = ( 6 , 3 ), subplot_kw = dict (aspect = "equal" )) recipe = [ "375 g flour" , "75 g sugar" , "250 g butter" , "300 g berries" ] data = [ float (x.split()[ 0 ]) for x in recipe] ingredients = [x.split()[ - 1 ] for x in recipe] def func(pct, allvals): absolute = int (pct / 100. * np. sum (allvals)) return "{:.1f}%\n({:d} g)" . format (pct, absolute) wedges, texts, autotexts = ax.pie(data, autopct = lambda pct: func(pct, data), textprops = dict (color = "w" )) ax.legend(wedges, ingredients, title = "Ingredients" , loc = "center left" , bbox_to_anchor = ( 1 , 0 , 0.5 , 1 )) plt.setp(autotexts, size = 8 , weight = "bold" ) ax.set_title( "Recipe for a pie" ) plt.show() |
Output: