Data visualizations based on Tufte’s principles

Abhishek B

Above all else show the data

A working deck MER-201 and MER-102 are invented studies. The rules are not.

Edward Tufte’s ten rules for data graphics, each demonstrated on a figure a clinical statistician actually makes, almost always as a pair: the junk version on the left, the revised version on the right. Then the kill list, drawn the same way, and the checks to run before a figure goes in the CSR.

MER-201 progression-free survival, N = 240. Two curves, two labels, five ticks. Everything else on this slide waits for rule 3.

The reader is a reviewer

Your figures face the busiest readers in the industry. A DSMB member with six studies on the table. A regulator with a 400-page CSR and a PDUFA date. Every mark that is not data costs them attention they were saving for the data.

Rule Figure it fixes
1 Show the data The dynamite plot
2 Maximize the data-ink ratio The default KM plot
3 Erase non-data-ink The default KM plot
4 Erase redundant data-ink The truncated ORR bar
5 Keep graphical integrity The truncated ORR bar
Rule Figure it fixes
6 Small multiples The six-lab overlay
7 Layer and separate The heavy grid
8 Micro and macro The spaghetti plot, kept
9 Smallest effective difference The three-arm rainbow
10 Integrate words and data The forest plot

Rule 1 · Show the data

Rule 01 VDQI, p. 92 — “Above all else show the data”

As most tools draw it

The same 120 patients

The bar shows 2 numbers from 120 patients and hides the rest: the spread, the placebo responders, the active treatment progressors. The dot plot shows all 120 and the medians in red. Same data, opposite amount of information.

Rules 2 + 3 · Maximize data-ink, erase the rest

Rules 02 + 03 VDQI, p. 96 — data-ink is ink that would change if the data changed

Default output

After erasure

The audit behind both rules: change every event time and ask what moves. The curves move; the frame, grid, legend and minor ticks do not, and they are erased in that order. What replaced them is data: direct labels, censor marks, medians where they occur, and the at-risk counts, which are the honest width of the right-hand tail.

Rules 4 + 5 · Say it once, draw it honestly

Rules 04 + 05 VDQI, p. 100 — one encoding per quantity, and a lie factor between 0.95 and 1.05

Five statements, drawn 12x too big

Position once, with its interval

The left panel breaks both rules at once. The bar states 42.3 five ways: top-edge position, fill height, printed label, the gridline it touches, the axis tick beside it. And its axis starts at 35, so an 11% relative difference is drawn as 135%, a lie factor of 12. The right panel says each number once, as position on a scale anchored at zero, with the decimals printed and the 95% interval drawn. The intervals overlap by nine points, which is the finding the truncated bars were built to hide.

Rule 6 · Small multiples

Rule 06 VDQI, p. 67 — “Compared to what?”

Twelve lines, one panel

Six panels, one line each

Mean % change from baseline, six labs, two arms. On the left the ALT signal is one strand in a twelve-line knot with a two-part legend. On the right, six panels on one shared scale, active treatment in ink, placebo in gray; the ALT climb to +24% is the safety story, so ALT alone carries the accent.

Rule 7 · Layer and separate

Rule 07 Envisioning Information — data loudest, scaffolding faintest

Grid at the weight of the data

Grid one step back

Same three dose groups. On the left the grid is drawn at the weight of the data and every crossing makes a small visual event Tufte calls 1 + 1 = 3. On the right the layers are ranked: data in ink, labels next, two faint gridlines last. Nothing crosses anything at equal weight.

Rule 8 · Micro and macro readings

Rule 08 Envisioning Information — “To clarify, add detail”

The summary alone

Every patient, and the summary

eGFR, active treatment arm, 30 patients over 26 weeks, same y scale in both panels. The mean is flat, and the left panel ends the story there. The right panel keeps the macro reading (a stable band) and adds the micro one: three patients decline more than 30%, one past 40%, in red. Means can be stable while patients are not.

Rule 9 · The smallest effective difference

Rule 09 Visual Explanations, p. 73 — distinctions as subtle as possible, still clear

Three saturated hues, one legend

Gray context, one accent

The proposed phase 3 dose is 20 mg, so 20 mg carries the accent and the other arms become gray context, labeled where their lines end. The left panel separates three groups with three saturated hues and makes the reader look up each one; the reading is identical, only the effort changes.

Rule 10 · Integrate words and data

Rule 10 The forest plot is the most Tufte figure in the CSR: a table and a graphic, fused

PFS by subgroup, MER-201. Label, n, estimate and picture share each row; the eye never leaves the line it is reading. No legend, no second panel, no page flip to Table 14.2.4. The point sits on a log scale where a ratio belongs, the interval is drawn rather than footnoted, and the prior platinum CI crossing 1 is legible at a glance.

Kill · The response pie

The kill list, drawn 1 of 3

Angles, matched to a legend

Positions, sorted and labeled

Which is larger, stable disease or partial response? The pie asks you to compare two angles 90 degrees apart, via a legend. The dot plot answers before the question forms, gives the exact counts, and marks the responders, the number the study lives on, in red.

Kill · The dual-axis overlay

The kill list, drawn 2 of 3

Two scales, one panel

Two panels, one clock

The left panel invites a correlation the data never claimed: rescale either axis and the crossing point moves anywhere you like. The right panel keeps the shared clock, gives each measure its own honest scale, and lets the reader align the timings without being steered.

Kill · The rainbow heatmap

The kill list, drawn 3 of 3

Hue has no order

One hue, light to dark, sorted

ALT as multiples of ULN, 24 patients, 26 weeks. Is yellow higher than green? The rainbow forces the reader to keep re-checking the legend, and its brightest band lands mid-scale. One hue running light to dark reads without a key, and sorting patients by peak puts the four who crossed 2 xULN, labeled at week 26, in one place instead of scattered.

The rest of the kill list

Kill Use instead Shown at
Dynamite plots Dots and medians, all patients Rule 1
Legend far from the curves Direct labels at line ends Rules 2+3, 9
Grid and frame at data weight Faint gray, or nothing Rules 2+3, 7
Truncated bar axes Zero base, or the number with its CI Rules 4+5
Bars for ratios A point with an interval on a log scale the fix, rule 10
3D anything The 2D version never drawn, on purpose
Subgroup panels on mixed scales One shared scale Rules 6, 8
“approximately ~42%” “42.3%” every caption
p-value theater The estimate and interval, shown Rule 10

If a journal or a sponsor template insists on one of these, comply, and put the Tufte version beside it in the appendix. Reviewers notice.

Before a figure ships

  • Every patient visible, or the summary is drawn over the points.
  • Zero-based bars; truncated line axes labeled.
  • One accent color, spent on the finding, not the furniture.
  • Direct labels; a legend only past five groups.
  • Shared scales across panels and repeat figures.
  • At-risk counts under every KM plot.
  • Sorted by estimate, not alphabetically, unless the SAP says otherwise.
  • Type readable from the back: ticks 12 px, labels 14 px.

Above all else show the data.
Maximize the data-ink ratio.
Erase non-data-ink.
Erase redundant data-ink.
Revise and edit.

VDQI, p. 105

The fifth line does the work. Every clean panel in this deck is the second draft of the junk panel beside it.

Sources and reuse

The three books: The Visual Display of Quantitative Information (1983), Envisioning Information (1990), Visual Explanations (1997). Quotes cited by page.


MER-201 and MER-102 are simulated: R/sim_data.R generates every dataset, R/theme_tufte.R holds the palette and themes, and every figure is plain ggplot2, dplyr, and survival. Render with quarto render tufte-pharma.qmd. Reuse freely.