Data
Data Viz That Doesn’t Suck: 5 Habits I Stole From Edward Tufte
Small, boring, opinionated tweaks that make dashboards feel premium — without touching the underlying data pipeline.
KeerthanMar 10, 20251 min read
datadesigndashboards
The plot most people ship
- Rainbow palette
- 3D bars
- Chartjunk gridlines
- No baseline
- Legend fighting for attention
The plot Tufte would ship? A single sparkline with one number in bold.
Habit 1: Kill the axes you don't need
Most bar charts don't need an x-axis label if the categories are labeled inline. Every removed pixel raises the data-ink ratio.
Habit 2: Use color for meaning, not decoration
One accent color. One neutral. Anything else has to justify itself with data.
import matplotlib.pyplot as plt
plt.rcParams.update({
"axes.spines.top": False,
"axes.spines.right": False,
"axes.grid": True,
"grid.color": "#e5e7eb",
})
Habit 3: Annotate the punchline
If your chart needs a title and a caption and the reader's imagination, you failed. Add an arrow to the actual data point that matters.
Habit 4: Small multiples > one big chart
When comparing 6 regions, ship 6 small charts on the same scale, not one rainbow.
Habit 5: Round aggressively
23.847% is a lie about precision. 24% is the truth.
Tools I actually use
- Recharts — sane defaults, great TypeScript support.
- Observable Plot — for exploration.
- Plotly — for interactive stakeholder reports.
Keep it boring, keep it truthful.