A legend asks the reader to hold a colour in working memory, move their eyes to the plot, find the matching mark, and move back. That's two fixation-and-saccade round trips per series for a single question, and the cost grows with the number of series.
How much time does a legend cost?
You can put a number on it if you state your assumption. Take a fixation-plus-saccade cycle at 250 milliseconds. That's a reasonable working figure, though nobody measured it on your reader. Then count round trips for the task "name the series with the highest value at the right-hand end".
| Series | Legend round trips | Lookup time at 250 ms | Direct-label round trips |
|---|---|---|---|
| 2 | 4 | 1.00 s | 0 |
| 3 | 6 | 1.50 s | 0 |
| 4 | 8 | 2.00 s | 0 |
| 6 | 12 | 3.00 s | 0 |
| 8 | 16 | 4.00 s | 0 |
| 9 | 18 | 4.50 s | 0 |
| 12 | 24 | 6.00 s | 0 |
Three seconds at six series doesn't sound like much until you notice what it's spent on. The reader spends it before they've started thinking about the data, on every chart, for every question. It comes out of the same budget as the thinking. On a slide that gets nine seconds, that's a third of the total.
The direct label costs the same ink as the legend key and asks for none of that. A 12 point label subtends 16.11 arcminutes at eight metres whether it's in a legend box or at the end of a line. So the swap is free in every respect except layout effort.
Advertisement
When should you keep a legend?
Four cases keep the legend. Know them, and the rule won't turn into a superstition.
A colour scale needs a legend, where a set of discrete series wouldn't. A heat map or a choropleth encodes a continuous quantity, and there's nowhere on the mark to put a label. Give it a continuous colour bar with its endpoints and midpoint labelled. Put it horizontally under the plot, where it reads as part of the axis and not as a separate object.
A small-multiple grid that reuses one encoding across every panel needs one shared legend, shown once. Don't repeat a label in each panel. The saving is real, since one legend for nine panels beats nine sets of labels.
Lines that converge at the right-hand edge can't carry labels there without collision. Move the labels to wherever the lines are furthest apart, often the left edge or a point in the middle, and connect each label to its line with a short leader if needed. Reach for a legend here only when nothing else works.
A chart with more than about eight series shouldn't be carrying eight labels either. The real fix is upstream. Maybe the message concerns one or two of the series. Then the rest are context and need no individual identity at all. Or the message concerns all of them, and they belong in a small-multiple grid or a table.
How should you order a legend?
Where you keep a legend, order it to match the data. Say the legend lists six cohorts alphabetically while the plot orders them by value. Every entry now needs a second lookup. Order the legend by the series' value at the point the reader is looking at, usually the right-hand end, and place it next to that end. Below the plot is the wrong place.