A chart’s legend is usually generated from the data: as many categories as the data contains, that many rows in the legend.

Most of the time that’s fine. When the legend’s job is to explain, it’s wrong.

The report said “the icons aren’t aligned”

We measured three times. The alignment was fine.

What had actually happened was that two categories in that batch of data were empty, so the legend lost two rows. The user remembered a legend with seven rows and was looking at five. Something felt off, and the closest words for it were “not aligned.”

What the report says and what caused it are different things

People describe the discrepancy they noticed, not what caused it. There are usually several layers between the two.

⭐ So when a visual bug report comes in, the first step isn’t to fix what it literally says. It’s to measure. Only then do you decide what the report is really about.

The rule

Components that explain show the full set.

Legends, color keys, status tables, icon indexes: their job is to help someone build a mental model once, not to mirror what’s in this batch of data. Empty categories stay, marked as having no data.

Components that present follow the data. Bars, lines and cards should only draw what’s there.

Both can live on the same chart. The only difference is the answer to one question: are you here to explain, or to present?