|
1 | 1 | """ |
2 | | -=============== |
3 | | -Basic pie chart |
4 | | -=============== |
| 2 | +========== |
| 3 | +Pie charts |
| 4 | +========== |
5 | 5 |
|
6 | | -Demo of a basic pie chart plus a few additional features. |
| 6 | +Demo of plotting a pie chart. |
7 | 7 |
|
8 | | -In addition to the basic pie chart, this demo shows a few optional features: |
9 | | -
|
10 | | -* slice labels |
11 | | -* auto-labeling the percentage |
12 | | -* offsetting a slice with "explode" |
13 | | -* drop-shadow |
14 | | -* custom start angle |
| 8 | +This example illustrates various parameters of `~matplotlib.axes.Axes.pie`. |
| 9 | +""" |
15 | 10 |
|
16 | | -Note about the custom start angle: |
| 11 | +# %% |
| 12 | +# Label slices |
| 13 | +# ------------ |
| 14 | +# |
| 15 | +# Plot a pie chart of animals and label the slices. To add |
| 16 | +# labels, pass a list of labels to the *labels* parameter |
17 | 17 |
|
18 | | -The default ``startangle`` is 0, which would start the "Frogs" slice on the |
19 | | -positive x-axis. This example sets ``startangle = 90`` such that everything is |
20 | | -rotated counter-clockwise by 90 degrees, and the frog slice starts on the |
21 | | -positive y-axis. |
22 | | -""" |
23 | 18 | import matplotlib.pyplot as plt |
24 | | - |
25 | | -# Pie chart, where the slices will be ordered and plotted counter-clockwise: |
26 | 19 | labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' |
27 | 20 | sizes = [15, 30, 45, 10] |
| 21 | + |
| 22 | +fig, ax = plt.subplots() |
| 23 | +ax.pie(sizes, labels=labels) |
| 24 | + |
| 25 | +# %% |
| 26 | +# Each slice of the pie chart is a `.patches.Wedge` object; therefore in |
| 27 | +# addition to the customizations shown here, each wedge can be customized using |
| 28 | +# the *wedgeprops* argument, as demonstrated in |
| 29 | +# :doc:`/gallery/pie_and_polar_charts/nested_pie`. |
| 30 | +# |
| 31 | +# Auto-label slices |
| 32 | +# ----------------- |
| 33 | +# |
| 34 | +# Pass a function or format string to *autopct* to label slices. |
| 35 | + |
| 36 | +fig, ax = plt.subplots() |
| 37 | +ax.pie(sizes, labels=labels, autopct='%1.1f%%') |
| 38 | + |
| 39 | +# %% |
| 40 | +# By default, the label values are obtained from the percent size of the slice. |
| 41 | +# |
| 42 | +# Color slices |
| 43 | +# ------------ |
| 44 | +# |
| 45 | +# Pass a list of colors to *colors* to set the color of each slice. |
| 46 | + |
| 47 | +fig, ax = plt.subplots() |
| 48 | +ax.pie(sizes, labels=labels, |
| 49 | + colors=['olivedrab', 'rosybrown', 'gray', 'saddlebrown']) |
| 50 | + |
| 51 | +# %% |
| 52 | +# Hatch slices |
| 53 | +# ------------ |
| 54 | +# |
| 55 | +# Pass a list of hatch patterns to *hatch* to set the pattern of each slice. |
| 56 | + |
| 57 | +fig, ax = plt.subplots() |
| 58 | +ax.pie(sizes, labels=labels, hatch=['**O', 'oO', 'O.O', '.||.']) |
| 59 | + |
| 60 | +# %% |
| 61 | +# Swap label and autopct text positions |
| 62 | +# ------------------------------------- |
| 63 | +# Use the *labeldistance* and *pctdistance* parameters to position the *labels* |
| 64 | +# and *autopct* text respectively. |
| 65 | + |
| 66 | +fig, ax = plt.subplots() |
| 67 | +ax.pie(sizes, labels=labels, autopct='%1.1f%%', |
| 68 | + pctdistance=1.25, labeldistance=.6) |
| 69 | + |
| 70 | +# %% |
| 71 | +# *labeldistance* and *pctdistance* are ratios of the radius; therefore they |
| 72 | +# vary between ``0`` for the center of the pie and ``1`` for the edge of the |
| 73 | +# pie, and can be set to greater than ``1`` to place text outside the pie. |
| 74 | +# |
| 75 | +# Explode, shade, and rotate slices |
| 76 | +# --------------------------------- |
| 77 | +# |
| 78 | +# In addition to the basic pie chart, this demo shows a few optional features: |
| 79 | +# |
| 80 | +# * offsetting a slice using *explode* |
| 81 | +# * add a drop-shadow using *shadow* |
| 82 | +# * custom start angle using *startangle* |
| 83 | +# |
| 84 | +# This example orders the slices, separates (explodes) them, and rotates them. |
| 85 | + |
28 | 86 | explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs') |
29 | 87 |
|
30 | | -fig1, ax1 = plt.subplots() |
31 | | -ax1.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', |
| 88 | +fig, ax = plt.subplots() |
| 89 | +ax.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', |
32 | 90 | shadow=True, startangle=90) |
33 | | -ax1.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle. |
34 | | - |
35 | 91 | plt.show() |
36 | 92 |
|
37 | 93 | # %% |
| 94 | +# The default *startangle* is 0, which would start the first slice ("Frogs") on |
| 95 | +# the positive x-axis. This example sets ``startangle = 90`` such that all the |
| 96 | +# slices are rotated counter-clockwise by 90 degrees, and the frog slice starts |
| 97 | +# on the positive y-axis. |
38 | 98 | # |
39 | 99 | # .. admonition:: References |
40 | 100 | # |
|
0 commit comments