Unify Logo Footer.svg
Unify Applications
Logo
Heatmap

Heatmap

Logo

4 mins READ

Overview

The Heat Map chart type renders a two-dimensional grid of cells. Each cell's color intensity represents the magnitude of a value at the intersection of an X-category and a Y-category. Unlike cartesian charts, the axes are both categorical — there is no continuous scale unless you bind a date or numeric field that the chart treats as ordered categories.

Tip: A heatmap works best when you have many combinations of two categories with a numeric signal at each intersection (e.g., day × hour, agent × queue, product × region). If there are very few X or Y values, a grouped bar chart may be clearer.

Required Data Shape

Each record in the bound data must have at least three fields:

  • A field bound to the X Axis (one categorical or date dimension)

  • A field bound to the Y Axis (a second categorical dimension)

  • A numeric field bound to the Value (the measurement that drives color)

Sample data shape for an activity heatmap

[ { "day": "Mon", "hour": "9am", "tickets": 12 }, { "day": "Mon", "hour": "10am", "tickets": 18 }, { "day": "Tue", "hour": "9am", "tickets": 7 }, ... ]

Bind day → X Axis, hour → Y Axis, tickets → Series Value.

Content Properties

PropertyDescription
Data SourceThe array of records to render as a grid.
X Axis → ValueThe field to distribute along the horizontal axis. Each unique value becomes a column.
X Axis → TypeAxis scale. Category (default) for text labels; Time for dates (enables date grouping).
X Axis → Tick labels / RotateControls label visibility, angle, and font on the X axis header row.
Y Axis → ValueThe field to distribute along the vertical axis. Each unique value becomes a row.
Series → ValueThe numeric field driving cell color intensity. One series only on a Heat Map.
Series → LabelThe display name used in the tooltip and legend.
TooltipCustomizable header and body for hover tooltips. Can reference the row's X value, Y value, and numeric value.

Appearance Properties

PropertyOptions / DefaultDescription
Color Scalegradient pickerDefines the color range from minimum to maximum cell value. Often a single-hue gradient (e.g., white → dark blue) or a diverging palette (blue → white → red).
Color Min / MaxnumericOverride the automatic min/max of the color scale. Useful when you want cells below a threshold to show the same "low" color, or to align multiple heatmaps on the same scale.
Legend Positiontop, right, bottom, left, removePosition of the color scale gradient legend.
Show Cell LabelstoggleRenders the numeric value inside each cell. Useful for dense comparison tables where hover is inconvenient.
Chart Colourscolor assignmentControls the color palette for the scale steps. Often configured as a two-stop gradient.
stylesstyle setBlock dimensions, padding, overflow.

Events & Methods

EventDescription
On Data Point ClickFires when a cell is clicked. The payload contains the full record for that cell's X/Y intersection. Use to drill down into the detail rows behind the aggregated cell value.

Behavior & Gotchas

⚠ Missing cells are blank, not zero

If your data has no record for a given X/Y intersection, the cell renders as blank (no fill). To show a "zero" cell, include a record with value 0 in your data source.

⚠ Color scale uses the data range by default

The color scale automatically spans the minimum and maximum values in the bound data. If your data changes (filtered, refreshed), the scale re-centers and visual comparisons can shift. Pin Color Min / Max to a fixed range for stable comparisons.

⚠ One series per heatmap

A Heat Map supports exactly one value field. To compare two metrics, use two separate Chart blocks side by side with linked legends.

⚠ Axis order follows data row order

X and Y axis categories appear in the order they are first encountered in the data. Sort your data source before binding to control axis ordering.

Common Patterns

Activity Calendar (Day × Hour)

  1. Prepare aggregated data: Query your data source to aggregate records by day-of-week and hour-of-day, summing or counting the metric of interest. Return one row per day/hour pair.

  2. Bind axes: Set X Axis Value = day-of-week field, Y Axis Value = hour-of-day field, Series Value = count field.

  3. Configure color scale: Choose a single-hue gradient (light = low, dark = high). Pin Color Min = 0 to keep the scale stable across different data loads.

  4. Add drill-down: On On Data Point Click, open a drawer or modal filtered to the clicked day + hour to show the underlying records.

Correlation Matrix

  1. Compute correlations: Pre-compute a correlation matrix (or similarity table) server-side, returning rows like { metricA, metricB, correlation }.

  2. Use diverging color scale: Set a diverging palette: blue for negative correlation, white for zero, red for positive. Pin Color Min = -1, Color Max = 1.

  3. Enable cell labels: Toggle Show Cell Labels on so readers can see exact correlation values without hovering.

PageRelationship
Scatter & Bubble ChartsAnother distribution chart type — for continuous X/Y instead of categorical
Bar & Column ChartsAlternative for comparing categories when the grid would be sparse
Data Labels & AnnotationsAdding text labels to data points on other chart types