Charts

Heatmap Generator

A grid of numbers coloured by value, with a sequential or a zero-centred diverging scale.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Paste a header row of column names first, then one row per label with a number in each column.
  2. Pick a sequential scale for data that only goes up, or the diverging scale when the sign matters.
  3. Select Draw the heatmap.
  4. Check the legend range. One extreme cell can flatten every other cell to the same colour — worth splitting out before you present it.

What heatmap generator does

When you have two categories and one number — service by day, cohort by week, region by product — a heatmap shows the whole grid at once and lets the pattern find you. A table of the same numbers contains exactly the same information and hides the pattern completely, which is the entire argument for drawing it.

Paste a header row of column names and rows beginning with a row name, and this colours every cell by value and adds a legend. A sequential scale runs light to dark for data that only goes up; a diverging scale is centred on zero for data where the sign matters, such as change against a baseline. Cells with no number are left blank rather than treated as zero.

Frequently asked questions

When you are looking for a pattern rather than a value. A table of the same numbers holds identical information but requires you to read every cell to find the hot row or the quiet column; a heatmap puts those in front of you immediately. When the exact figures matter more than the pattern, keep the table.

Sequential — light to dark — is for data that runs from low to high with no meaningful midpoint: counts, durations, totals. Diverging is for data where zero means something and the sign matters: change against a baseline, variance to forecast, sentiment. Using a diverging scale on data with no natural centre invents a midpoint that is not there.

That is the colour scale being stretched by a single extreme value. The usual options are to cap the scale, to chart the log of the values, or to pull that one cell out and mention it separately — which is often the most honest, because a value that far from the rest deserves a sentence, not a shade.

They are left blank rather than coloured, because no data and zero are different claims and a heatmap that renders them identically will get you a confident answer about a thing that was never measured. Cells with text that is not a number are treated the same way.