Pie Charts

Matplotlib is a Python library for creating charts and visualizations — and the pie chart is the classic way to show how a single whole splits into proportional slices.

Learn Pie Charts in our free Matplotlib course — a beginner-friendly interactive lesson with worked examples, a practice exercise and a quick reference.

Part of the free Matplotlib course at LearnCodingFast — hands-on lessons with examples you run in your browser, plus practice exercises and a quick quiz.

In this lesson you'll draw a pie, label each slice with its percentage, explode a slice for emphasis, and keep the circle perfectly round.

A pie chart turns a list of values into slices whose angles are proportional to those values. Pass the sizes to plt.pie() with matching labels , and Matplotlib computes the angles for you.

What you'll see: a round pie split into four slices. Rent takes the biggest wedge at 40% of the circle, Transport the smallest, and each slice carries its category name around the edge.

Add autopct to print each slice's percentage right on the wedge, and use startangle to rotate where the first slice begins. Starting at 90° puts the first slice at the top, which many people find easier to read.

What you'll see: a colored pie where the largest slice (Chrome) starts at the top and the others follow clockwise. Each wedge shows its share as a percentage like 63.0%, so you can read the exact proportions without guessing.

To draw attention to one category, explode it outward. Build a list with one number per slice — 0 leaves a slice in place, and a small value like 0.1 pulls it away from the center.

What you'll see: a three-slice pie where the Mobile wedge is nudged away from the center with a subtle drop shadow, making it pop. Every slice still shows its percentage, and the chart stays a clean circle.

Replace each ___ to draw a labeled pie with percentage slices.

You forgot plt.axis("equal") . Without it the axes stretch and the circle squashes.

The explode list must have exactly one number per slice — the same length as your sizes list.

Show favorite seasons as a pie, exploding the most popular slice and showing percentages.

Lesson 10 complete — you can show parts of a whole!

You drew pie charts, labeled each slice with its percentage, exploded a slice for emphasis, and kept the circle perfectly round.

🚀 Up next: Subplots & Layouts — place several charts together in one figure.

Practice quiz

Which call draws a pie chart from a list of values?

  • plt.slices()
  • plt.circle()
  • plt.pie(sizes)
  • plt.wedge()

Answer: plt.pie(sizes). plt.pie(sizes) turns the values into proportional slices.

Which argument names each slice?

The labels argument supplies a name for each slice.

What does autopct='%1.1f%%' do?

  • Sets slice colors
  • Rotates the pie
  • Explodes a slice
  • Prints each slice's percentage with one decimal

Answer: Prints each slice's percentage with one decimal. autopct formats the percentage label on each wedge, here to one decimal place.

What does the explode list do?

  • Hides a slice
  • Pulls chosen slices outward from the center
  • Colors the slices
  • Adds percentages

Answer: Pulls chosen slices outward from the center. explode pushes selected slices away from the center; 0 leaves them in place.

What does startangle=90 do?

  • Doubles the pie size
  • Hides the labels
  • Rotates where the first slice begins
  • Adds a shadow

Answer: Rotates where the first slice begins. startangle rotates the starting angle of the first slice, e.g. 90 puts it at the top.

Which call keeps the pie a perfect circle?

  • plt.round()
  • plt.circle(True)
  • plt.aspect('round')
  • plt.axis('equal')

Answer: plt.axis('equal'). plt.axis('equal') forces equal x and y scaling so the pie stays round.

Why might a pie render as an oval?

  • You forgot plt.axis('equal')
  • The values do not sum to 100
  • Too few slices
  • autopct was missing

Answer: You forgot plt.axis('equal'). Without axis('equal') the axes stretch and the circle squashes into an oval.

What must be true about the explode list length?

  • It must be empty
  • It must have exactly one number per slice
  • It must have two values
  • It must sum to 1

Answer: It must have exactly one number per slice. explode needs one entry per slice, matching the sizes list length.

When is a pie chart a poor choice?

  • With three categories
  • Showing a budget split
  • Showing market share
  • With many categories that are hard to compare

Answer: With many categories that are hard to compare. Past five or six slices a bar chart usually reads better than a pie.

Do the slice angles in plt.pie reflect the values' proportions?

  • No, all slices are equal
  • Only if sorted
  • Yes, angles are proportional to the values
  • Only with autopct set

Answer: Yes, angles are proportional to the values. Matplotlib makes each slice's angle proportional to its value automatically.