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

The horizon chart is what you get when you take a line / area chart, fold it into bands by magnitude, and stack the bands. Negative values fold up and reverse colour; large values stack atop smaller ones. The form is brilliant for dense time-series small-multiples: each chart strip is only 30–50 pixels tall, yet conveys positive/negative direction, magnitude bands, and trend simultaneously.

Heer, Kong, and Agrawala studied the form in 2009 and found it outperformed conventional line charts at small heights — readers could detect peaks, troughs, and trends in horizon charts a third the height of standard line charts. It is the chart for dashboards with twenty time series stacked in a single panel.

What it is

A horizon chart takes a continuous time series and divides its value range into bands (typically 3 or 4 of each polarity). Positive values are coloured with one hue ramp (light to dark for low to high bands); negative values are mirrored (folded above zero) and coloured with another hue ramp. The bands are stacked: instead of a tall area chart with a tall peak, you get a short strip with multiple coloured layers showing where the value was in each band.

Daily CPU utilisation — 24 servers2026-W21 · 7-day window · positive = above baseline · bands = quartiles

Twenty-four servers as a stack of horizon strips. Each strip is 16 pixels tall. The eye scans down for the patterns: servers with consistent high bands (overloaded), servers with frequent mirrored bands (oscillating around baseline), servers that flip-flopped (likely scaling events). The same data as twenty-four line charts would have been a wall of barely-legible squiggles.

When to use it

Horizon charts are the right choice when:

  • You have many time-series strips (10–100) to compare in a single panel.
  • The reader's question is "which series are exceptional, and when?"
  • The data has a meaningful baseline — values fluctuate above and below a reference.
  • Vertical space is constrained — dashboards, status boards, dense reports.
  • The audience is trained or willing to learn the band-folding convention.

When not to use it

  • Single time series. A horizon strip for one series is a strange way to show a line chart. Use a line chart.
  • Audiences unfamiliar with the form. Without orientation, horizon charts look like coloured stripes. They need a legend or a brief explainer.
  • Precise value reading. The band encoding gives approximate magnitudes, not exact numbers. For precision, hover tooltips or paired numeric columns.
  • No natural baseline. If positive and negative are not meaningful (raw quantities like counts), the folding adds nothing.

Design principles

Use 3 or 4 bands per polarity

Two-band horizon charts lose detail; five-or-more-band horizon charts become hard to distinguish at small heights. Three or four is the sweet spot — enough resolution, enough colour separation.

Use a sequential colour ramp per polarity

Positive bands: light blue, medium blue, dark blue (or any sequential ramp). Negative bands: light orange, medium, dark (or the opposite hue from positive). The folding then encodes value as colour intensity, with hue separating polarity.

Match strip heights across the panel

The panel's clarity comes from regularity. Every strip the same height; every band breakpoint the same. The reading task is compare across rows, which requires alignment.

Horizon construction — area chart → bands → folded and stacked
STEP 1 — AREA CHARTSTEP 2 — BANDS, MIRROREDSTEP 3 — STACKED
Step 1 shows the underlying time series as an area chart; step 2 divides into bands; step 3 mirrors negative values upward; step 4 stacks the bands at fixed strip height.

Direct-label every row

A row of horizon strips needs labels — server name, metric name, region — on the left. Without labels, the chart is a beautiful abstract pattern. With them, it is a multi-series dashboard.

Use a clear legend

Place a small legend showing the bands and their colour mapping. Each band = 25% of σ above baseline. Without the legend, the colours are decorative.

Anchor at the baseline, not at the minimum

Horizon charts depend on a baseline — typically zero, a moving average, or an SLO. State the baseline in the subtitle. Do not let the chart imply a baseline that does not exist.

Use sparingly in editorial work

Horizon charts are operational; they belong on dashboards, not in articles. For editorial communication, even of the same data, a line chart with explicit labels is more honest about what readers can read.

Anatomy

The Composition of a Horizon Chart Panel
srv-01srv-02srv-03srv-04srv-05srv-06srv-07srv-08BAND LEGEND+1σ+2σ+3σ1σ2σ3σSTACKED BANDSMIRRORED NEGATIVE
An anatomical guide

A horizon chart panel is a column of identical-height strips, each carrying a folded-and-stacked time series. The form scales linearly: thirty rows fit in the space of one tall line chart.

  • Line chart (small multiples) — the conventional alternative; clearer at single chart scale but uses far more vertical space.
  • Heatmap (matrix) — for time-series small multiples where colour-on-grid is preferred to band-stacking.
  • Stream graph — for the same multi-series layered time-series question with compositional rather than baseline-centred encoding.
  • Sparkline — a simpler dashboard form; less information per row.
  • Calendar heatmap — for daily-granularity small multiples over months/years.

Reading list

  • Heer, J., Kong, N. & Agrawala, M. (2009). Sizing the Horizon: The Effects of Chart Size and Layering on the Graphical Perception of Time Series Visualizations. The empirical foundation.
  • Reijner, H. (2008). Horizon Chart. Panopticon Software's original specification.
  • Few, S. (2008). Time on the Horizon. A critique and refinement of the form.