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