Where we are
Sessions 3 and 4 were about being right. Tonight is about being read, and almost all of it is removing things you already put in.
★ What you walk out with tonight. One chart stripped to its marks, its legend replaced by labels, a hover layer specified, a table view added, and a halfway grade.
The grid is scaffolding, not data
6 min liveEverything that is not the data should be quieter than the data. That single instruction fixes about half of what makes a chart look amateur, and it costs nothing.
LiveDirect labels beat a legend, nearly always4 min▶
A legend is a matching exercise: the reader looks at a mark, goes to the legend, finds the swatch, comes back, and repeats for every series. A direct label is just there.
- One series needs no legend at all. The title names it. A legend box with one entry is pure furniture.
- Two to four series: label them directly at the end of the line or inside the bar, and keep a legend as well if the chart appears without its title anywhere.
- Five or more: you have a session 2 problem. Small multiples, or grey-the-rest with the one you mean labelled.
- Never a number on every point. Label the first, the last, the peak and anything you are making a claim about. Labelling everything is the same as labelling nothing.
Direct labels also do accessibility work: they are the second channel from session 4, and they are what discharges a contrast warning on a lighter series colour. One decision, three problems solved.
Dark gridlines both directions, a boxed border, a legend with one entry, the value printed above every bar in the series colour, a y-axis titled "Revenue (USD)", and a drop shadow.
Six elements competing with four bars. The reader's eye lands on the grid first because it has the most edges, and the numbers in blue read as part of the data rather than as a description of it.
Four bars. Category names to the left in ink, values inside the bars in white, four faint vertical gridlines, one thin axis line, and the title stating the finding.
Nothing was added. The border, the legend, the axis title, the shadow and half the gridlines were removed, and the values changed from the series colour to text colour. It now reads in about a second.
Hover and the table view
6 min liveAn HTML chart is an interactive object whether or not you designed it as one. Two layers cost very little and are missing from most charts on most internal tools.
Self-studyMark specifics worth getting right4 min▶
- Thin marks. 2px lines, markers of at least 8px so they can be hovered, bars with a small radius on the data end only - a bar rounded at the baseline is floating.
- A gap between fills. Two pixels of surface between stacked segments and between adjacent bars. Without it, two dark segments merge into one shape.
- A surface ring on overlapping marks. Two pixels of the background colour around a dot that sits on a line, so the dot reads as in front rather than as a bulge.
- Text wears text colours. A value label in the series hue reads as data. Keep labels, values and legends in ink and let the coloured mark beside them carry the identity.
None of these are noticeable individually. Together they are most of the difference between a chart that looks made and one that looks generated, and every one of them is a two-minute change.
Strip one chart
★ 22 min · everyone buildsThe rule for the next twenty minutes: you may only remove things and change colours to quieter ones. Nothing may be added except labels.
Rank it. List every visible element and order it by how loud it currently is. Compare against the ranking above. Most charts have the grid too high and the labels too low.
Remove. The border, the drop shadow, one direction of gridlines, the axis title if the tick labels already say it, and the legend if there is one series.
Label. Direct labels on the marks. First, last, peak, and anything you are making a claim about - not every point.
Recolour text. Every value, label and legend entry into ink or muted ink. Colour stays on the marks.
Add the two layers. A hover tooltip and a table view. Together they are the only additions allowed tonight, and they remove the pressure to print numbers everywhere.
Take your busiest real chart and list its elements. Ten to fifteen is normal. Four to six is where you are heading.
Delete the border and the shadow first. They are pure furniture and nobody has ever missed them.
Drop one direction of gridlines. Bars need lines along the value axis only. The perpendicular set is separating categories that are already separated by being separate bars.
Fade what remains until you have to look for it. If you can see the grid while reading the data, it is too dark.
Kill the legend. One series means no legend. Two to four means direct labels. Five or more means you have a session 2 problem and should go back.
Recolour every number to ink. This is the change people find most surprising - coloured value labels look deliberate and read as data.
Specify the hover and the table. Write down what the tooltip says and what the table columns are. Even if you are not the one building it, this is a two-line spec.
Count your elements again and grade the work below.
If you take one thing from tonight. Fade the gridlines until you have to look for them. It takes ten seconds, it changes no data, and it is the single most visible difference between a chart that looks made and one that looks generated.
Before session 6
25 min- Strip three real charts by removal only. Count elements before and after.
- Replace one legend with direct labels and check nothing was lost.
- Recolour every value label to ink in one deck. It is a find-and-replace and it changes how the whole thing reads.
- Add a table view to one chart people keep asking you for the numbers from.
- Open your best chart on a phone before session 6, and note exactly what breaks. Session 6 is about that.
Three questions
Clear all three and session 5 gets stamped in your passport.
1 · Your value labels are printed in the same colour as the bars. What is wrong?
Contrast is a separate check and it may well pass. The problem is semantic: colour in this chart means something, and putting it on text spends that meaning on an element that is not encoding anything. It is also the change people are most surprised by when they make it.
2 · When does a chart not need a legend at all?
A legend is a matching exercise, and with one series there is nothing to match. Two to four series get direct labels on the marks instead, which also serves as the second channel from session 4. Five or more is a session 2 problem, not a legend problem.
3 · Why is a table view not a consolation prize?
Treating the table as a fallback for people who cannot see the chart misses that it is where the exact numbers live. It solves five separate problems at once, which is an unusual ratio, and it removes the pressure to print a value on every mark.
What this session teaches, and where it came from
Every fact on this page, and its verification tier, is recorded in the course's source map. The session 3 bench implements every rule in this session, including the table view.
Session 5 cheat sheet · pin this
The chart is finished, on your monitor. Session 6 is every other place it has to survive: a report, a slide behind you, a phone on a train, and a printer. Dark mode as a second palette rather than an inversion, forced colours, and what a screen reader actually gets when it reaches your chart.