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