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.

The hero chart above is sixty days of winter temperature anomaly for eight capital cities, each row less than fifty pixels tall. Blue is warmer than the 1991–2020 mean, orange colder, and each band is two degrees: the palest tint is within two degrees of normal, the darkest is four or more away. The eye reads the rows as weather. A cold front crossing the south-east shows up as an orange block moving down the rows from Perth to Adelaide to Melbourne to Hobart a day or two apart; Darwin, in the dry season, barely leaves the palest band. Eight line charts would need three times the height to say the same thing. Randomise it and the anomalies jitter, but the fronts stay where they are.

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

See the fold before you trust it

The construction is easier to believe once you have watched it happen. The three figures below are the same sixty days of Melbourne's anomaly: first as the area chart everyone can read, then folded so negatives sit on top of the baseline in the second colour, then sliced into three bands and stacked so the whole thing fits in a strip a third of the height.

Step one: the area chart
Sixty days of anomaly, above and below zero. Honest and familiar, and 260 pixels tall for one city. The peaks reach four degrees either side of normal, and most of the plot is empty.
Step two: fold the negatives over the baseline
One band per polarity. Cold days now sit above the baseline in orange, warm days in blue, and the strip needs only the height of the positive range. Nothing has been lost except the reader's habit of looking below the line.
Step three: slice into bands and stack them
Three bands per polarity, each one and two-thirds of a degree. The strip is now 60 pixels, a quarter of the area chart, and the darkest tint marks the days that were more than three degrees from normal. Colour intensity has replaced height.

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.

Six bands per polarity
The same three cities with six bands. The tints are now a third of a degree apart and the ramp has more steps than the eye can name, so a day in band four looks the same as a day in band five. The extra resolution is not read; it is only rendered.

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. The house renderer builds both ramps from the first two palette colours, so a chart needs to name only a pair.

Choose between offset and mirror

There are two ways to fold. In offset mode — the house default, used by every other horizon figure on this page — a cold spell is a hump rising from the baseline just like a warm spell, and only the colour tells them apart. In mirror mode the negative bands hang from the top of the strip and grow downward, so polarity is visible in the shape as well as the hue, at the cost of a busier strip.

Mirror mode: negatives hang from the top
Cold spells now hang from the top of each strip and grow downward while warm spells rise from the baseline. A reader who cannot separate the hues can still see the sign; the price is that the two shapes meet in the middle and each strip is busier.

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. Set maxValue explicitly so that the bands mean the same number of degrees in every row and in every chart on the page — the figures here all use five.

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 = 2 °C from normal. Without the legend, the colours are decorative. Where the tooling has no legend, the subtitle carries it, as the hero's does.

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, small multiples with explicit axes are more honest about what readers can read — at a cost in height that the figure below makes plain.

The hero's three southern cities as small multiples
The same series as three line panels on a shared axis. Every value can be read against the scale, and the cold front's progress from Adelaide to Melbourne to Hobart is still visible — but three cities now take the height the horizon chart gave to eight.

Anatomy

The composition of a horizon chart
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.

  • 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). The Development of the Horizon Graph. Panopticon Software's original description of the form.
  • Few, S. (2008). Time on the Horizon. A critique and refinement of the form.