What are small multiples, when should you use them instead of overlaying series on one chart, and what are the design rules?
Small multiples (also called trellis or facet charts) repeat the same chart structure across panels, one per category, using identical scales, axes, and visual encodings. They let viewers compare patterns across groups without the visual tangle of many overlapping lines or bars, and are the right choice when you have more than three to four groups or when overlap obscures individual trends.
How to think about it
Why overlay fails at scale
A line chart with 10 series overlaid becomes a spaghetti chart: lines cross, colors repeat, and the viewer cannot isolate any single trend. Interaction (hover to highlight) helps in an interactive context but fails in a printed or static PDF report.
When small multiples win
- You have more than 3–4 groups and want the viewer to inspect each pattern individually.
- The shape of the trend matters as much as the comparison between groups.
- You want to show geographic or demographic breakdowns without a complex legend.
- Groups have very different y-axis scales (use a free-y-axis variant, but label clearly).
Design rules
- Identical axes across panels — the most important rule. If panels use different y-axis ranges, a steep line in one panel cannot be compared to a shallow line in another. Use a shared axis unless you are explicitly showing each group’s internal shape and have labeled the difference prominently.
- Consistent visual encodings — same color, same line thickness, same marker shape in every panel.
- Meaningful order — arrange panels alphabetically, by total magnitude, by geographic region, or by cluster membership, never randomly.
- Minimal panel chrome — remove individual axis borders; use subtle gridlines; do not repeat the y-axis label on every panel. A single shared label or a note suffices.
- Panel labels above or to the side — not inside the plot area where they compete with data.
Implementation
In Python: seaborn.FacetGrid or matplotlib.pyplot.subplots with shared axes. In R: ggplot2::facet_wrap or facet_grid. In Vega-Lite: facet encoding. In Tableau: use “columns/rows” shelf with a dimension.
Small multiples vs. animation
Animation (a flipbook of frames over time) is tempting but rarely better than small multiples for analytical use. Viewers cannot hold a previous frame in memory, making comparison impossible without a replay. Use animation only for presentations where the storytelling sequence matters and comparison is not the goal.