The Analyst's Path

Direct labelling in charts

Direct labelling means naming each series on the chart itself, usually at the end of its line, instead of in a legend. A legend makes the reader hold a colour in memory and look across to the plot and back, which is two round trips of the eye per series for each question. At six series, assuming 250 milliseconds a trip, that is 3 seconds spent before the reader starts thinking about the data.

3 min readPart of Decluttering and Focus: Data-Ink, Pre-attentive Attributes, ColourOpen in course mode

Advertisement

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".

SeriesLegend round tripsLookup time at 250 msDirect-label round trips
241.00 s0
361.50 s0
482.00 s0
6123.00 s0
8164.00 s0
9184.50 s0
12246.00 s0

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.

Advertisement

Part of the course

This page is part of Decluttering and Focus: Data-Ink, Pre-attentive Attributes, Colour (PR2.02), in Phase 2: Financial statement analysis and quality of earnings. The module's flashcards and its quiz are in the app.