Pie and donut charts

Use a bar, almost always.

A pie asks the reader to compare angles. People are poor at that. A bar asks them to compare lengths, which they do well. Keep the pie for one narrow job.

The case against

People judge lengths well. Angles and arcs, badly.

In 1984 William Cleveland and Robert McGill tested how accurately people read different chart encodings. Position along a shared scale came first, then length, then angle, then area. A bar chart uses the top two. A pie uses the bottom two: the angle of each slice and the area it fills.

RankThe reader comparesPower BI visuals that use it
1Position on a shared scaleLine chart, dot plot, the ends of bars that share a baseline
2LengthBar and column charts
3AnglePie chart, gauge
4AreaPie slices, treemap, bubble size

A donut is harder still. Cutting out the centre removes the point where the angles meet, so the reader is left comparing the lengths of curved arcs. Cole Nussbaumer Knaflic makes this point in Storytelling with Data and steers readers to a bar instead.

Try it. Below are the 102 people who left, grouped by how long they had stayed. Which group is bigger: under 1 year or 2 to 4 years? Answer on the pie first, then the donut, then the bar.

Pie chart titled Employees who left, by how long they had stayed, with four unlabelled slices: under 1 year, 1 to 2 years, 2 to 4 years and 4+ years.

Pie: compare angles. The two slices differ by about 7 degrees. Most people can't say which is bigger.

Donut chart titled Employees who left, by how long they had stayed, with the same four slices as rings.

Donut: compare arcs. No centre, so no angle to judge. The two arcs sit on opposite sides of the ring, which makes it harder still.

Column chart titled Employees who left, by how long they had stayed. The 2 to 4 years column is slightly taller than the under 1 year column.

Bar: compare lengths. Same baseline, so the answer is visible with no labels at all: 2 to 4 years (33 people) beats under 1 year (31).

Before you build a pie, ask: does the reader need to compare the parts? If yes, use a bar. Almost every business question is a comparison.

Failure 1: too many slices

Past three slices, a pie stops working.

Each slice needs its own colour, so the reader has to match colours to a legend before reading anything. Power BI's default palette repeats after a handful of colours, and it drops labels it can't fit. Gene Zelazny, in Say It with Charts, caps a pie at about six parts. Most practitioners now say three.

Before22 hiring sources in a donut
Donut chart titled Count of Employee Number by Employee Source, with 22 slices, a legend of 22 sources, and labels on only the six largest slices.
  • A 22-item legend, read before the chart.
  • Employee Referral, Billboard and Internet Search share the same blue.
  • Sixteen slices have no number.
AfterTop 10 sources, the rest grouped
Sorted bar chart titled Hiring is spread thin: the top source, referrals, brought in 31 of 301 hires. Employee Referral in blue, nine more sources in grey, and 12 other sources grouped at the bottom with 86 hires.
  • Sorted, so the rank is visible at a glance.
  • The long tail becomes one "12 other sources" bar, kept at the bottom.
  • Labels on the bars, no legend.
Failure 2: similar slices

When slices are close in size, the eye can't rank them.

Campus events brought in 64 hires and referrals 60. In a pie the two slices look the same, so the reader falls back on the labels. At that point the chart is a table drawn in a circle.

BeforeHires by channel
Pie chart titled Count of Employee Number by Channel, six slices in default colours with labels such as 64 (21.26%) and 60 (19.93%).
  • Three slices between 17% and 21% look alike.
  • The order of the slices only shows up in the two-decimal labels.
AfterHires by channel
Sorted bar chart titled Campus events edge out referrals, 64 hires to 60. Campus and events in blue, referrals in light blue, other channels in grey.
  • A 4-hire gap is visible as a difference in length.
  • The two bars the title names are the two in colour.
Failure 3: two pies side by side

Comparing two pies means comparing angles across a gap.

The reader has to find a slice in one pie, find its partner in the other, and compare two angles that don't share a starting point. Knaflic's makeovers in Storytelling with Data replace paired pies with a 100% stacked bar, a pair of bars, or simply the number.

BeforeOne pie for women, one for men
Two pie charts titled Leave Reason Group (Female) and Leave Reason Group (Male), each with three slices and labels like 38 (64.41%) and 25 (58.14%).
To compare "better job elsewhere" for women and men, the reader reads two labels and does the sum in their head.
AfterOne 100% stacked bar, one row per group
100% stacked bar chart titled Women and men leave for much the same reasons: about 6 in 10 for a better job. Women 64% better job, 22% life event, 14% performance or conduct; men 58%, 26%, 16%.
Both rows start at the same baseline, so the first segments compare as lengths. Group sizes go in the row labels: 59 women, 43 men.

Pies have a second, quieter problem. Every pie is drawn the same size, so it hides the total. Here are exits by type in 2014 and 2015:

BeforeTwo years, two pies
Two pie charts titled Employment Status (2014) and Employment Status (2015). Both are more than 80% voluntarily terminated and look almost the same.
The two pies look the same. Nothing tells the reader that exits nearly doubled.
AfterStacked bars of counts
Stacked bar chart titled Exits nearly doubled in 2015, and terminations rose from 2 to 5. 2014: 12 resigned, 2 terminated, 14 total. 2015: 21 resigned, 5 terminated, 26 total.
Bars of counts show both stories: the total jumped from 14 to 26, and terminations (blue) more than doubled.
Failure 4: rates that aren't a whole

A pie needs parts of one whole. Rates don't add up to anything.

A pie says "these slices make up 100% of something". That's true for counts of people, hours or dollars. It's false for rates, averages and percentages of different groups. Each department's turnover rate is a share of a different headcount, so the rates add up to 127%, which means nothing.

Power BI draws the pie anyway. It divides each rate by that 127% and labels Production as 31.37%: a share of nothing.

BeforeTurnover rate in a pie
Pie chart titled Turnover Rate by Department. Slices are labelled with two percentages each, such as 39.90% (31.37%) for Production.
  • Two percentages on each slice. Only the first is real.
  • Executive Office (0%) vanishes from the circle.
AfterA sorted bar with the company rate
Sorted bar chart titled Turnover ranges from 40% in Production to 13% in Sales, with a dashed line at the company rate of 34%.
  • Each bar is a rate, read against a dashed company line at 34%.
  • The subtitle flags the small groups: 10, 10 and 1 people.

The test: add up the slices. If the total isn't a real thing you could count (all employees, all hires, all exits), it isn't a pie.

Failure 5: the donut

A donut is a pie with the useful part removed.

Donuts are popular because they look modern and leave a hole for a total. But the hole takes away the angle, the small slices shrink to slivers on a thin ring, and the labels get pushed out to leader lines.

BeforeExits by department, as a donut
Donut chart titled Count of Employee Number by Department. Production fills 81% of the ring; four thin slivers for the other departments are labelled 10, 4, 3 and 2 in a stack of leader lines.
  • Four departments squeezed into 19% of a ring.
  • The reader has to trace leader lines to match labels to slivers.
AfterExits by department, as bars
Bar chart titled Production accounts for 83 of the 102 people who left. Production in blue, IT/IS 10, Sales 4, Software Engineering 3, Admin Offices 2 in grey.
  • The small departments get readable bars and labels.
  • The title does the part-of-whole maths: 83 of 102.

The other common donut is a single number dressed as a ring, like a gauge. It shows one value and no comparison, so the reader can't tell whether it's good or bad.

BeforeReferral hires, as a ring
Donut chart titled Count of Employee Number by Left Company, legend False and True, labelled 27 (87.10%) and 4 (12.90%).
  • "False" and "True" are field values, not words.
  • 87% of what, compared with what?
AfterReferral hires against everyone
Bar chart titled Only 13% of referral hires left, against 34% overall. Referral hires bar in blue at 13%, all employees in grey at 34%.
  • Two bars give the number its comparison.
  • The subtitle keeps the base honest: 4 of 31 hires.
The one good use

Two or three parts of a real whole, when the share is the message.

Zelazny sorts every chart by the comparison it makes: component, item, time series, frequency or correlation. The pie has one job, the component comparison: what share of a whole is this part? He expects it to be the rarest chart in a deck, around 5% of them.

The pie earns its place when all of these are true:

  • The parts add up to a real whole: all employees, all exits, all hires.
  • There are two or three parts. "Left or stayed" and "resigned or terminated" qualify.
  • The message is the share ("one in three"), not a ranking or a change over time.
  • It's one pie, not two to compare.
BeforeEvery status, default settings
Pie chart titled Count of Employee Number by Employment Status, five slices in default colours with a legend: Active, Voluntarily Terminated, Terminated for Cause, Leave of Absence, Future Start.
  • Five slices when the question has two answers.
  • The reader must add two slices to get "left".
AfterTwo parts, one accent
Pie chart titled One in three employees has left: 102 of 301. Left slice in blue labelled 34%, still here in grey labelled 66%.
  • Statuses grouped into the two the message needs.
  • Labels on the slices, no legend.
  • The title gives the share and the count.
BeforeHow people left, as a donut
Donut chart titled Count of Employee Number by Employment Status with a legend for Voluntarily Terminated and Terminated for Cause, labelled 88 (86.27%) and 14 (13.73%).
  • Field-name title and legend, two-decimal labels.
  • Two shades of blue for two opposite things.
AfterA two-part pie that states the finding
Pie chart titled Most people who left chose to: 88 of 102 resigned. Resigned slice in blue at 86%, terminated in grey at 14%.
  • Plain words: "resigned" and "terminated".
  • The slice the title is about is the one in colour.

How to design one well

DoWhy
Two or three slicesGroup the rest. A pie with more parts is a bar chart in disguise.
Start at 12 o'clock, largest first, clockwiseThe eye starts at the top. Zelazny puts the slice that matters against the 12 o'clock line; with two slices, both touch it.
Labels on the slices, legend offName and percentage beside each slice, so nobody matches colours to a key.
One accent, the rest greyColour the slice the title is about. Everything else recedes.
Whole percentages34%, not 33.89%. The pie can't show the decimals anyway.
A title that states the finding"One in three employees has left: 102 of 301", not "Employment Status".
No 3D, no exploded slicesTilting the pie distorts the areas; pulling a slice out breaks the whole. Power BI doesn't offer either; don't copy them in from Excel or PowerPoint.
Even then

Before you draw the pie, try a bar or a number.

For one share of one whole, two other designs are often better. Switch between them:

Pie chart titled One in three employees has left: 102 of 301. Left 34% in blue, still here 66% in grey.

Pie. Fine for two parts. It takes the most space of the three for the same message.

Single 100% stacked bar titled One in three employees has left: 102 of 301. Left 34% in blue, still here 66% in grey.

One 100% stacked bar. Same message in a third of the height. Add a second row later (a department, a prior year) and it still works.

Big number 34% under the title One in three employees has left: 102 of 301, with the line of employees have left: 102 of 301, against 199 still here.

Big number. If the share is the whole message, say it. Knaflic: "simple text" is often the best visual for one or two numbers.

Pick the bar when you might add a comparison later, the number when one share is the whole story, and the pie only when the page has room and the "part of a whole" shape helps the reader.

In Power BI

Most fixes are one click on the visual type.

Turn a pie into a sorted bar

  1. Select the pie. In the Visualizations pane, click Clustered bar chart. The fields carry over.
  2. Open More options (...) > Sort axis, pick the measure, then Sort descending.
  3. In Format visual > Bars > Colors, set the default to grey, then colour the one bar the title names.
  4. Turn Data labels on and the X-axis and Gridlines off.

Group a long tail into "other"

  1. For a top-N chart: in the Filters pane, set the category's Filter type to Top N, Show items: Top 10, and drag the measure into By value.
  2. To keep the rest as one bar: right-click the field in the Data pane, choose New group, select the small items, click Group, and tick Include Other group.

Replace two pies with one 100% stacked bar

  1. Insert a 100% stacked bar chart. Put the groups you were comparing (Sex, Year) on the Y-axis and the parts on Legend.
  2. Turn Data labels on. Colour the part the title is about in the accent and the rest grey.
  3. If the totals differ, use a plain Stacked bar chart instead, so the bar lengths show the totals.

Show a rate against the company rate

  1. Create the measure below.
  2. Select the bar chart, open the Analytics pane, add a Constant line, click fx next to Value and pick the measure. Turn on its Data label.
Company Turnover Rate =
CALCULATE ( [Turnover Rate], REMOVEFILTERS ( Employees[Department] ) )

Build the defensible pie

  1. Group the categories first (a column like Status Group with "Left" and "Still here"), so the pie has two or three slices.
  2. Format visual > Legend: Off.
  3. Detail labels > Label contents: Category, percent of total. Set the percentage to 0 decimal places.
  4. Slices > Colors: grey for every slice, the accent for the one the title is about.
  5. Sort by the measure, descending. Leave Rotation at 0 so the first slice starts at 12 o'clock.
  6. Write the finding in General > Title.

Use a big number instead

  1. Insert a Card with the share measure, formatted as a whole percentage.
  2. Put the context ("102 of 301 employees") in the card's label or a small text box under it.
Test your eye

Decide the chart before you open the answer.

A report shows a pie of average pay rate by department. What's wrong with it?

Averages don't add up to a whole, so the slices are shares of nothing. Use a sorted bar of average pay: Production $23.1 an hour, IT/IS $44.8, Sales $55.5, with the department your title is about in the accent.

You want to show that 88 of the 102 people who left chose to resign. Pie, bar or number?

Any of the three can work: it's two parts of a real whole and the share is the message. A two-slice pie with "Resigned 86%" in the accent is defensible. If space is tight, the number alone ("86% resigned") may say it best.

Two donuts compare the department mix of hires in 2012 and 2014. How would you rebuild it?

One 100% stacked bar with a row per year if the mix is the point, or a stacked bar of counts if the totals differ (they do: 44 hires in 2012, 60 in 2014). Two donuts make the reader compare arcs across a gap and hide the totals.

A pie of exits by tenure shows "Under 1 year 30%" and "2 to 4 years 32%". Its title says "Most people leave in their first year". What's wrong?

The title is false twice. The 2 to 4 years group is bigger (33 people against 31), and 30% is not "most". The pie hides the first error because the two slices look the same. A column chart in tenure order shows it, and an honest title would be "Three in ten leavers go within a year".

A colleague says "the donut is fine, I put the total in the hole". Is it?

The total helps, but it doesn't fix the comparison: the reader still compares arc lengths on a ring. If the total is the message, use a card. If the parts are, use a bar.