Crash course / Showing the result
Choosing the form before the colours
Most bad charts are bad because someone picked a chart type from a toolbar. The type should be decided by what the data is being asked to do.
Open any charting tool and it offers you a gallery. That gallery is the problem: it invites you to choose an appearance before you have decided what the chart is for.
Work in this order instead. Colour comes last, always.
1. What job is the data doing?#
| The job | The form |
|---|---|
| Compare magnitude across categories | Bar chart, sorted by value |
| Show change over time | Line chart |
| Show composition of a whole | Stacked bar — and only if parts genuinely sum to the whole |
| Show the relationship between two numbers | Scatter plot |
| Show a distribution | Histogram, or a box plot for comparing several |
| Show one number | A big number. Not a chart. |
| Show many series at once | Small multiples, not a spaghetti line chart |
| Show geography | A map, and only if location is the actual variable |
The most common mistake is using a line chart for categories. A line implies continuity between adjacent points. Countries are not adjacent. If the x-axis can be reordered without loss of meaning, it is a bar chart.
2. Is it a chart at all?#
If the answer is a single number — conversion is 4.2%, revenue is 1.8M — do not draw it. Write it large, with a comparison beside it and a small trend line if trajectory matters. A pie chart of one number is decoration.
If the reader needs to look up precise values, that is a table. Tables are underrated. A well-formatted table with right-aligned tabular figures, a sensible sort, and one highlighted row often communicates better than any chart.
3. Sort by value, not by name#
Bar charts sorted alphabetically make the reader do the ranking themselves. Sort descending by the value unless the category has a natural order — days of the week, size bands, funnel stages.
4. Start bars at zero. Lines need not.#
A bar's length encodes the value, so a truncated axis lies about the ratio. A line's position encodes the value, so a truncated axis is legitimate and often necessary — a stock price between 412 and 418 is unreadable on an axis starting at zero.
The rule: length encodings start at zero, position encodings do not. Label the axis clearly either way.
5. Never two y-axes#
Ever. Two series on different scales share a chart and the reader infers a relationship from where the lines happen to cross — which is entirely an artefact of the two scales you chose. Change one axis's range and the "relationship" changes.
The alternatives are all better: two stacked charts sharing an x-axis, small multiples, or indexing both series to 100 at a common starting point so they share one honest scale.
6. Small multiples beat spaghetti#
Twelve lines on one chart is unreadable, and the usual fix — an interactive legend for isolating a series — asks the reader to do work. Twelve small panels sharing axes is readable at a glance and shows every series at once.
Use one line chart when comparing three or four series that genuinely cross and interact. Use small multiples for anything more.
7. Show distributions, not just averages#
A bar chart of group means hides everything interesting: spread, skew, bimodality, sample size. For comparing distributions across a handful of groups, a box plot adds the quartiles; for fewer than a few hundred points per group, a strip or beeswarm plot showing every point is better still.
Bar charts of means with error bars — "dynamite plots" — are the worst of both: they hide the shape and imply a symmetry that skewed data does not have.
8. Write the sentence the chart is making#
Before drawing, write the sentence you want the reader to leave with:
Q4 revenue grew 22%, driven almost entirely by the marketplace channel.
Now the chart designs itself. Time on x, revenue on y, split by channel, marketplace emphasised and the others recessive. And the title of the chart is that sentence — not "Revenue by channel over time", which describes the axes the reader can already see.
Titles should state the finding, not the contents. This single change improves more charts than any amount of restyling.