Problem
Averages can hide distinct groups and unusual values in a large set of events. People need to see how the distribution changes over time.
Solution
Group events into time intervals and value ranges. Color each cell by the number of events in that group, with a clear legend.
Choose value ranges that reveal the distribution. A logarithmic scale can help when values span a wide range, but label it clearly. Show how bucket boundaries and color limits are set.
Keep exact counts available through an accessible detail view. Use matching axes and color scales when people need to compare heatmaps.
Use when
There are too many events to show individually and the shape of their distribution over time matters.
Don’t use when
The volume is low. A heatmap over forty events is a sparse grid of near-identical cells, and a scatter plot would show the same thing with less machinery. Also avoid it when the audience reads the page from ten feet away—colour density needs a close look.
Trade-offs
Heatmaps take practice to read. Bucket choices can hide or exaggerate patterns, and exact values are less obvious than in a table. Automatic color scales can make different datasets look deceptively similar.
Checklist
- Are the y buckets linear or log, and does the choice suit a skewed distribution?
- If log, base 2 or base 10, and does the labelling make the base obvious?
- Where do bucket boundaries fall relative to the values people care about?
- Is the colour scale shared with any neighbouring heatmap, and if not, is that stated?
- Is the scale clamped, and does one extreme cell dominate the ramp if it isn’t?
- Does the colour ramp survive the viewer’s colour vision, and does it survive greyscale printing?
- Can the viewer get from a dense region to the underlying events?
- What does an empty cell look like, and can it be confused with a low-count cell?
- Is a companion percentile or count available for people who need a number?
- Does the panel say what one cell represents, in both axes?
Compare
Grafana treats it as a panel with a lot of knobs—bucket source, three y-scale families, two colour modes, clamps at both ends—which makes it the most configurable version and the easiest to leave on defaults that hide the data. Honeycomb builds its whole analysis loop on top of it: draw a box around the interesting region and BubbleUp compares the events inside against the baseline outside, so the heatmap is a selection surface rather than a picture. Datadog offers it as a distribution view alongside percentile lines, which lets a team keep the line they already trust and check it against the shape when it disagrees. Netdata mostly declines the pattern, because per-second resolution on ordinary charts already shows detail that other tools only recover by bucketing.
Related
Histogram shows a distribution without time. Percentile summary reduces it to selected values. Time series shows a measure at each interval.
Sequential and diverging scales defines the color mapping. Small multiples supports comparisons between heatmaps.