This entry is part of the Chart Index, the reference library for the Chart Design Field Guide.

The ridge plot — also known as the joy plot, after Joy Division's Unknown Pleasures album cover — stacks density curves vertically. Each row is a group; each curve is that group's distribution. The curves overlap intentionally, ridges in a landscape, and the eye reads them as a comparative ranking of shapes.

The form is built for many groups (often dozens) and a single continuous variable, where the question is how the distribution shifts across an ordinal dimension: cohort, week, year, region. A panel of side-by-side violins handles the same data; ridges do it more densely, with a more striking visual rhythm.

What it is

A ridge plot maps an ordinal categorical variable to vertical position (often time, cohort, or rank) and a continuous variable to horizontal position. Each group's distribution is rendered as a density curve, baseline-aligned, and stacked above the previous one with a small overlap. The result resembles a topographic profile or a wave-like landscape.

The hero chart above stacks twelve months of Sydney daily maximum temperatures, January at the top and December at the bottom. The peaks drift left through autumn, bottom out in June and July, and drift back right through spring — the seasonal cycle read as a single shape. Winter ridges are narrow and tall; summer ridges are wide and low, because a hot month has more variable days. Randomise the observations and every ridge is re-estimated from its raw values; the drift survives because it is in the data, not in the drawing.

When to use it

Ridge plots are the right choice when:

  • You have many groups with an ordinal axis — month, cohort, age band, year.
  • The reader's question is "how does this distribution shift over time / across order?"
  • Each group has enough observations for a density estimate to be reliable (≥100).
  • The shape change (mode shifting, tails growing, bimodality emerging) is the story.
  • You want density without losing the panel structure — twelve violins side-by-side use horizontal space; ridges use vertical.

When not to use it

  • Few groups. Ridge plots need at least five or six rows to establish a rhythm. For three groups, side-by-side violins are clearer.
  • Non-ordinal categories. The vertical stacking implies an order. If the groups have no natural sequence (regions, products), do not impose one — use a panel of independent violins.
  • Precise reading of any single distribution. Overlap and small height force each curve to be approximate. For one distribution, a histogram or density plot wins.
  • Comparable across far-apart rows. The eye reads adjacent ridges easily but struggles to compare row 1 with row 12 directly. Sort to put the comparison of interest adjacent.
Three groups: not enough rows for a ridge
Three months of daily maxima as ridges. With so few rows there is no landscape to read, and the vertical stacking spends most of the panel on empty baseline.
The same three months as violins
Side by side, the three distributions get the full height of the panel each, a shared value axis with gridlines, and a median dot. For a handful of groups this is the more legible form.

Design principles

Order rows by the ordinal axis

Time-ordered, rank-ordered, age-ordered. The point of a ridge is that adjacent rows are comparable; that comparability requires meaningful order. Random or alphabetical row order destroys the form.

Rows in alphabetical order: the drift is gone
The same eight months sorted A to Z. Every ridge is correct and the panel is meaningless — the peaks zig-zag because April sits next to August, and the seasonal story cannot be read.
Rows in calendar order: the peaks walk left
Same ridges, January to August top to bottom. Now each row is comparable with its neighbours and the panel reads as one movement: the peak drifts steadily to the left as summer gives way to winter.

Choose overlap deliberately

Too little overlap and the chart becomes a stack of disconnected curves; too much and rows merge into a blob. Wilke's guidance is that each ridge should rise well into the row above it — enough to imply continuity, not so much that adjacent peaks lose their own baselines.

No overlap: a stack of small multiples
Each ridge is confined to its own row. The chart is honest and dull: the curves are squashed to a third of the height they could have, and the panel loses the landscape reading that is the reason to choose this form.
Heavy overlap: peaks climb three rows
Each ridge is allowed three times its row height. The landscape is dramatic, but January's peak now reaches past March's baseline and the eye starts to lose which curve belongs to which label. Somewhere between the two — about twice the row height, as in the hero — is the working range.

Use one hue, or a ramp keyed to the order

A subtle ramp keyed to the ordinal axis reinforces the order: from light (early) to dark (late), or cool to warm. Failing that, a single hue is better than a categorical palette — categorical colours label each row as a different kind of thing, and that fights the ordinal reading the stacking has already established.

A categorical palette fights the order
Eight months, eight unrelated colours. The palette says these rows are distinct categories; the stacking says they are a sequence. The reader gets two contradictory instructions and the colours carry no information the row labels did not.
One quiet hue: the shapes carry the story
The same ridges in a single blue at low opacity. Overlaps are visible as slightly darker tone where curves stack, nothing competes with the drift of the peaks, and the row labels do the identifying.

Annotate the rows clearly

Each row needs its label visible to its left. Compact labels — Jan, Feb, Mar — work; long labels make the chart top-heavy. The labels are the row identifiers; without them the ridges are an abstract shape.

Mark a vertical reference line

A single vertical guide at the cross-group median, a regulatory limit, or an event threshold helps the eye anchor. Without it, comparing peak positions across rows depends on the reader carrying the x-axis in their head. Quiet vertical gridlines, as in the figures here, do part of that job.

Resist colour fill noise

Filled ridges with high opacity become solid bands that hide the curve behind; filled with low opacity they stay readable and visually quiet. Choose a fill opacity that supports the overlap without overwhelming it: 20–30% is the typical range.

Avoid for non-distribution data

Some implementations stretch the ridge metaphor to non-distribution data (time series, smoothed counts). The form's perceptual contract is each row is a density curve. Breaking that contract confuses readers who recognise the form.

Anatomy

The composition of a ridge plot
An anatomical guide

A ridge plot is structurally a stack of density curves with calibrated overlap. The visual rhythm is part of the form; the data is the changing peak position, width, and tail length.

  • Side-by-side violins — same data, panel layout instead of stacked. Better for non-ordinal groups.
  • Heatmap — same many-group, one-variable structure but with magnitude encoded as colour rather than curve.
  • Density plot — single distribution; the ridge's basic building block.
  • Stream graph — similar visual rhythm for stacked time-series data; different semantics.
  • Histogram panel / small multiples — alternative for many distributions when shape detail matters.

Reading list

  • Wilke, C. (2019). Fundamentals of Data Visualization. The chapter on ridgeline plots.
  • Wickham, H. & Stryjewski, L. (2011). 40 Years of Boxplots. Historical context for distribution comparison forms.
  • Saville, P. (1979). Unknown Pleasures album cover. The cultural source of the joy in joy plot.