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.
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. 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.
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.
Anatomy
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.
Related types
- 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.