Heatmap API
API reference docs for the React Heatmap component. Learn about the props, CSS, and other APIs of this exported module.
Demos
Import
import { Heatmap } from '@mui/x-charts-pro/Heatmap';
// or
import { Heatmap } from '@mui/x-charts-pro';Learn about the difference by reading this guide on minimizing bundle size.
Props of the native component are also available.
| Name | Type | Default | Description |
|---|---|---|---|
| series* | Array<object> | - | The series to display in the bar chart. An array of HeatmapSeries objects. |
| xAxis* | Array<{ axis?: 'x', barGapRatio?: number, categoryGapRatio?: number, classes?: object, colorMap?: { colors: Array<string>, type: 'ordinal', unknownColor?: string, values?: Array<Date | number | string> } | { color: Array<string> | func, max?: Date | number, min?: Date | number, type: 'continuous' } | { colors: Array<string>, thresholds: Array<Date | number>, type: 'piecewise' }, data?: array, dataKey?: string, disableLine?: bool, disableTicks?: bool, domainLimit?: 'nice' | 'strict' | func, groups?: Array<{ getValue: func, tickLabelStyle?: object, tickSize?: number }>, height?: number, hideTooltip?: bool, id?: number | string, ignoreTooltip?: bool, label?: string, labelStyle?: object, offset?: number, ordinalTimeTicks?: Array<'biweekly' | 'days' | 'hours' | 'months' | 'quarterly' | 'weeks' | 'years' | { format: func, getTickNumber: func, isTick: func }>, position?: 'bottom' | 'none' | 'top', reverse?: bool, scaleType?: 'band', slotProps?: object, slots?: object, sx?: Array<func | object | bool> | func | object, tickInterval?: 'auto' | array | func, tickLabelInterval?: 'auto' | func, tickLabelMinGap?: number, tickLabelPlacement?: 'middle' | 'tick', tickLabelStyle?: object, tickMaxStep?: number, tickMinStep?: number, tickNumber?: number, tickPlacement?: 'end' | 'extremities' | 'middle' | 'start', tickSize?: number, tickSpacing?: number, valueFormatter?: func, zoom?: { filterMode?: 'discard' | 'keep', maxEnd?: number, maxSpan?: number, minSpan?: number, minStart?: number, panning?: bool, slider?: { enabled?: bool, preview?: bool, showTooltip?: 'always' | 'hover' | 'never', size?: number }, step?: number } | bool }> | - | The configuration of the x-axes. If not provided, a default axis config is used. An array of AxisConfig objects. |
| yAxis* | Array<{ axis?: 'y', barGapRatio?: number, categoryGapRatio?: number, classes?: object, colorMap?: { colors: Array<string>, type: 'ordinal', unknownColor?: string, values?: Array<Date | number | string> } | { color: Array<string> | func, max?: Date | number, min?: Date | number, type: 'continuous' } | { colors: Array<string>, thresholds: Array<Date | number>, type: 'piecewise' }, data?: array, dataKey?: string, disableLine?: bool, disableTicks?: bool, domainLimit?: 'nice' | 'strict' | func, groups?: Array<{ getValue: func, tickLabelStyle?: object, tickSize?: number }>, hideTooltip?: bool, id?: number | string, ignoreTooltip?: bool, label?: string, labelStyle?: object, offset?: number, ordinalTimeTicks?: Array<'biweekly' | 'days' | 'hours' | 'months' | 'quarterly' | 'weeks' | 'years' | { format: func, getTickNumber: func, isTick: func }>, position?: 'left' | 'none' | 'right', reverse?: bool, scaleType?: 'band', slotProps?: object, slots?: object, sx?: Array<func | object | bool> | func | object, tickInterval?: 'auto' | array | func, tickLabelInterval?: 'auto' | func, tickLabelPlacement?: 'middle' | 'tick', tickLabelStyle?: object, tickMaxStep?: number, tickMinStep?: number, tickNumber?: number, tickPlacement?: 'end' | 'extremities' | 'middle' | 'start', tickSize?: number, tickSpacing?: number, valueFormatter?: func, width?: number, zoom?: { filterMode?: 'discard' | 'keep', maxEnd?: number, maxSpan?: number, minSpan?: number, minStart?: number, panning?: bool, slider?: { enabled?: bool, preview?: bool, showTooltip?: 'always' | 'hover' | 'never', size?: number }, step?: number } | bool }> | - | The configuration of the y-axes. If not provided, a default axis config is used. An array of AxisConfig objects. |
| borderRadius | number | - | The border radius of the heatmap cells in pixels. |
| brushConfig | { enabled?: bool, preventHighlight?: bool, preventTooltip?: bool } | - | Configuration for the brush interaction. |
| colors | Array<string> | func | rainbowSurgePalette | Color palette used to colorize multiple series. |
| dataset | Array<object> | - | An array of objects that can be used to populate series and axes data using their |
| disableAxisListener | bool | false | If |
| height | number | - | The height of the chart in px. If not defined, it takes the height of the parent element. |
| hideLegend | bool | - | If |
| highlightedItem | { seriesId: string, type?: 'heatmap', xIndex: number, yIndex: number } | - | The highlighted item. Used when the highlight is controlled. |
| id | string | - | This prop is used to help implement the accessibility logic. If you don't provide this prop. It falls back to a randomly generated id. |
| initialZoom | Array<{ axisId: number | string, end: number, start: number }> | - | The list of zoom data related to each axis. Used to initialize the zoom in a specific configuration without controlling it. |
| loading | bool | false | If |
| localeText | object | - | Localized text for chart components. |
| margin | number | { bottom?: number, left?: number, right?: number, top?: number } | - | The margin between the SVG and the drawing area. It's used for leaving some space for extra information such as the x- and y-axis or legend. |
| onAxisClick | func | - | The function called for onClick events. The second argument contains information about all line/bar elements at the current mouse position. Signature: function(event: MouseEvent, data: null | ChartsAxisData) => void
|
| onHighlightChange | func | - | The callback fired when the highlighted item changes. Signature: function(highlightedItem: HighlightItemIdentifier<SeriesType> | null) => void
|
| onItemClick | func | - | The callback fired when an item is clicked. Signature: function(event: React.MouseEvent<SVGSVGElement, MouseEvent>, item: SeriesItemIdentifierWithType<SeriesType>) => void
|
| onTooltipAxisChange | func | - | The function called when the pointer position corresponds to a new axis data item. This update can either be caused by a pointer movement, or an axis update. In case of multiple axes, the function is called if at least one axis is updated. The argument contains the identifier for all axes with a Signature: function(axisItems: Array<AxisItemIdentifier>) => void
|
| onTooltipItemChange | func | - | The callback fired when the tooltip item changes. Signature: function(tooltipItem: SeriesItemIdentifier<TSeries> | null) => void
|
| onZoomChange | func | - | Callback fired when the zoom has changed. Signature: function(zoomData: Array<ZoomData>) => void
|
| showToolbar | bool | false | If true, shows the default chart toolbar. |
| slotProps | object | {} | The props used for each component slot. |
| slots | object | {} | Overridable component slots. See Slots API below for more details. |
| tooltip | object | - | The configuration of the tooltip. See tooltip docs for more details. |
| tooltipAxis | Array<{ axisId: number | string, dataIndex: number }> | - | The controlled axis tooltip. Identified by the axis id, and data index. |
| tooltipItem | { dataIndex?: number, seriesId: string, type?: 'heatmap', xIndex: number, yIndex: number } | - | The tooltip item. Used when the tooltip is controlled. |
| width | number | - | The width of the chart in px. If not defined, it takes the width of the parent element. |
| zAxis | Array<{ colorMap?: { colors: Array<string>, type: 'ordinal', unknownColor?: string, values?: Array<Date | number | string> } | { color: Array<string> | func, max?: Date | number, min?: Date | number, type: 'continuous' } | { colors: Array<string>, thresholds: Array<Date | number>, type: 'piecewise' }, data?: array, dataKey?: string, id?: string, max?: number, min?: number }> | - | The configuration of the z-axes. |
| zoomData | Array<{ axisId: number | string, end: number, start: number }> | - | The list of zoom data related to each axis. |
| zoomInteractionConfig | { pan?: Array<'drag' | 'pressAndDrag' | 'wheel' | { pointerMode?: 'mouse' | 'touch', requiredKeys?: Array<string>, type: 'drag' } | { pointerMode?: 'mouse' | 'touch', requiredKeys?: Array<string>, type: 'pressAndDrag' } | { allowedDirection?: 'x' | 'xy' | 'y', pointerMode?: any, requiredKeys?: Array<string>, type: 'wheel' }>, zoom?: Array<'brush' | 'doubleTapReset' | 'pinch' | 'tapAndDrag' | 'wheel' | { pointerMode?: any, requiredKeys?: Array<string>, type: 'wheel' } | { pointerMode?: any, requiredKeys?: array, type: 'pinch' } | { pointerMode?: 'mouse' | 'touch', requiredKeys?: Array<string>, type: 'tapAndDrag' } | { pointerMode?: 'mouse' | 'touch', requiredKeys?: Array<string>, type: 'doubleTapReset' } | { pointerMode?: any, requiredKeys?: array, type: 'brush' }> } | - | Configuration for zoom interactions. |
| Slot name | Class name | Default component | Description |
|---|---|---|---|
| axisLabel | ChartsText | Custom component for axis label. | |
| axisLine | 'line' | Custom component for the axis main line. | |
| axisTick | 'line' | Custom component for the axis tick. | |
| axisTickLabel | ChartsText | Custom component for tick label. | |
| baseButton | |||
| baseDivider | |||
| baseIconButton | |||
| baseMenuItem | |||
| baseMenuList | |||
| basePopper | |||
| baseTooltip | |||
| cell | .MuiHeatmap-cell | HeatmapCell | The component that renders the heatmap cell. |
| exportIcon | ChartsExportIcon | Icon displayed on the toolbar's export button. | |
| legend | ContinuousColorLegendProps | Custom component for the legend. | |
| loadingOverlay | ChartsLoadingOverlay | Overlay component rendered when the chart is in a loading state. | |
| noDataOverlay | ChartsNoDataOverlay | Overlay component rendered when the chart has no data to display. | |
| toolbar | ChartsToolbar | Custom component for the toolbar. | |
| tooltip | ChartsTooltipRoot | Custom component for the tooltip. | |
| xAxis | ChartsXAxis | Custom component for the x-axis. | |
| yAxis | ChartsYAxis | Custom component for the y-axis. | |
| zoomInIcon | ChartsZoomInIcon | Icon displayed on the toolbar's zoom in button. | |
| zoomOutIcon | ChartsZoomOutIcon | Icon displayed on the toolbar's zoom out button. |
These class names are useful for styling with CSS. They are applied to the component's slots when specific states are triggered.
| Class name | Rule name | Description |
|---|---|---|
| .MuiHeatmap-faded | faded | Styles applied to the cell element if faded. |
| .MuiHeatmap-highlighted | highlighted | Styles applied to the cell element if highlighted. |
| .MuiHeatmap-series | series | Styles applied to the root element for a specified series. Needs to be suffixed with the series ID: .${heatmapClasses.series}-${seriesId}. |
You can override the style of the component using one of these customization options:
- With a global class name.
- With a rule name as part of the component's
styleOverridesproperty in a custom theme.
Source code
If you did not find the information in this page, consider having a look at the implementation of the component for more detail.