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.
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.
| Rank | The reader compares | Power BI visuals that use it |
|---|---|---|
| 1 | Position on a shared scale | Line chart, dot plot, the ends of bars that share a baseline |
| 2 | Length | Bar and column charts |
| 3 | Angle | Pie chart, gauge |
| 4 | Area | Pie 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: compare angles. The two slices differ by about 7 degrees. Most people can't say which is bigger.
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.
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.
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.
- A 22-item legend, read before the chart.
- Employee Referral, Billboard and Internet Search share the same blue.
- Sixteen slices have no number.
- 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.
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.
- Three slices between 17% and 21% look alike.
- The order of the slices only shows up in the two-decimal labels.
- A 4-hire gap is visible as a difference in length.
- The two bars the title names are the two in colour.
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.
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:
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.
- Two percentages on each slice. Only the first is real.
- Executive Office (0%) vanishes from the circle.
- 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.
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.
- Four departments squeezed into 19% of a ring.
- The reader has to trace leader lines to match labels to slivers.
- 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.
- "False" and "True" are field values, not words.
- 87% of what, compared with what?
- Two bars give the number its comparison.
- The subtitle keeps the base honest: 4 of 31 hires.
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.
- Five slices when the question has two answers.
- The reader must add two slices to get "left".
- Statuses grouped into the two the message needs.
- Labels on the slices, no legend.
- The title gives the share and the count.
- Field-name title and legend, two-decimal labels.
- Two shades of blue for two opposite things.
- Plain words: "resigned" and "terminated".
- The slice the title is about is the one in colour.
How to design one well
| Do | Why |
|---|---|
| Two or three slices | Group the rest. A pie with more parts is a bar chart in disguise. |
| Start at 12 o'clock, largest first, clockwise | The 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 off | Name and percentage beside each slice, so nobody matches colours to a key. |
| One accent, the rest grey | Colour the slice the title is about. Everything else recedes. |
| Whole percentages | 34%, 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 slices | Tilting 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. |
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. Fine for two parts. It takes the most space of the three for the same message.
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. 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.
Most fixes are one click on the visual type.
Turn a pie into a sorted bar
- Select the pie. In the Visualizations pane, click Clustered bar chart. The fields carry over.
- Open More options (...) > Sort axis, pick the measure, then Sort descending.
- In Format visual > Bars > Colors, set the default to grey, then colour the one bar the title names.
- Turn Data labels on and the X-axis and Gridlines off.
Group a long tail into "other"
- 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.
- 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
- Insert a 100% stacked bar chart. Put the groups you were comparing (Sex, Year) on the Y-axis and the parts on Legend.
- Turn Data labels on. Colour the part the title is about in the accent and the rest grey.
- 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
- Create the measure below.
- 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
- Group the categories first (a column like
Status Groupwith "Left" and "Still here"), so the pie has two or three slices. - Format visual > Legend: Off.
- Detail labels > Label contents: Category, percent of total. Set the percentage to 0 decimal places.
- Slices > Colors: grey for every slice, the accent for the one the title is about.
- Sort by the measure, descending. Leave Rotation at 0 so the first slice starts at 12 o'clock.
- Write the finding in General > Title.
Use a big number instead
- Insert a Card with the share measure, formatted as a whole percentage.
- Put the context ("102 of 301 employees") in the card's label or a small text box under it.
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.