| Reach for a chart when… | Reach for a number when… |
|---|---|
| You are comparing many values at once | There is only one value that matters |
| The shape or trend is the message | The precise figure is the message |
| You want the reader to explore | You want the reader to remember one fact |
| Patterns, gaps and outliers carry meaning | The audience needs to quote the exact value |
| Encoding | Channel | How well it reads |
|---|---|---|
| Pie chart of 6 shares | Angle / area | Hard — can’t rank similar slices |
| Stacked bar of 6 shares | Length (unaligned) | Better for the bottom segment only |
| Sorted bar / dot plot | Position + length | Best — every value is comparable |
| Option | Verdict |
|---|---|
| Pie chart | Fine for 2–3 slices that are very different; poor beyond that |
| 100% stacked bar | Good for comparing the same parts across a few groups |
| Sorted bar of the shares | Usually clearest — reader can rank every part |
| Treemap | Many nested parts where rough size is enough |
| Your question | First choice | Also consider |
|---|---|---|
| Compare categories | Sorted bar | Dot plot, dumbbell |
| Trend over time | Line | Area, small multiples |
| Part of a whole | Sorted bar of shares | Stacked bar, treemap |
| Distribution | Histogram | Box, strip, beeswarm |
| Relationship | Scatter | Bubble, connected scatter |
| Flow between groups | Sankey | Chord |
| Before | After |
|---|---|
| 12 bars, 12 different bright colours | 11 grey bars, 1 coloured — the one you discuss |
| Rainbow choropleth | Single-hue sequential ramp |
| Red = our product (the “good” one) | Green for the favourable series |
| Legend with 12 swatches | Direct labels on the bars that matter |
| Indicator | 2015 | 2021 | Change |
|---|---|---|---|
| Full immunisation (%) | 62 | 76 | +14 |
| Institutional births (%) | 79 | 89 | +10 |
| Stunting, under-5 (%) | 38 | 36 | −2 |
| Medium | Design for… |
|---|---|
| Print report | High detail, small fonts OK, must work in greyscale |
| Web / screen | Interaction possible, but make it readable static-first |
| Mobile | One idea, large text, vertical, few categories |
| Projector / room | Big marks, high contrast, 3-second readability |
| Tool | Good for |
|---|---|
| Python (matplotlib, seaborn, plotly) | Analysis-to-chart in one place; reproducible |
| R (ggplot2) | Statistical graphics; the grammar of graphics done well |
| D3.js / Observable | Bespoke, interactive web visuals; full control |
| Vega-Lite | Declarative charts from a JSON spec |