A warning about pie charts
Pie charts are often hard to compare precisely.
Prefer:
- Bar charts (best)
- Donut charts only for simple cases
Still, you may see pie charts in reporting, so here’s how to make one safely.
flowchart LR A["Category values"] --> B["Sum to get the total"] B --> C["Each value's share = value / total"] C --> D["Share * 360deg = slice angle"] D --> E["Slices drawn around a full circle"]
Basic pie chart
import matplotlib.pyplot as plt
labels = ["A", "B", "C"]
values = [50, 30, 20]
plt.figure(figsize=(6, 6))
plt.pie(values, labels=labels, autopct="%1.0f%%", startangle=90)
plt.title("Category share")
plt.tight_layout()
plt.show()Improve readability
import matplotlib.pyplot as plt
explode = [0.1, 0.0, 0.0]
plt.figure(figsize=(6, 6))
plt.pie(values, labels=labels, autopct="%1.0f%%", startangle=90, explode=explode)
plt.title("Category share")
plt.tight_layout()
plt.show()Visualize it
A pie chart divides a whole into slices, where each slice's angle is proportional to its share of the total — so all the slices together make up 100%. Watch it build slice by slice:
Better alternative
If your goal is comparison, use a bar chart.
Check your understanding
What does autopct="%1.0f%%" do in plt.pie?
autopct formats the percentage text on each slice. For values 50, 30 and 20 it shows 50%, 30% and 20%.
Show answer
A — Prints each slice's percentage with no decimals — autopct formats the percentage text on each slice. For values 50, 30 and 20 it shows 50%, 30% and 20%.
What does explode = [0.1, 0.0, 0.0] do?
Each number is how far a slice is offset from the center, so only slice A is pulled out.
Show answer
A — Pulls the first slice out from the center — Each number is how far a slice is offset from the center, so only slice A is pulled out.
What does startangle=90 change?
startangle rotates the pie so the first slice begins at 90 degrees, the top.
Show answer
A — Where the first slice begins, so it starts at the top — startangle rotates the pie so the first slice begins at 90 degrees, the top.
If your goal is to compare categories precisely, what does the lesson recommend?
Pie charts are hard to compare precisely. Bar charts are the better alternative.
Show answer
A — A bar chart — Pie charts are hard to compare precisely. Bar charts are the better alternative.
Next
Continue to Subplots and Figure Size to combine several charts into one dashboard.
🧪 Try It Yourself
Exercise 1 – Slices sum to 100%
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.Exercise 2 – Explode the biggest slice
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.Exercise 3 – Convert to a bar chart instead
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.