Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Heatmap Chart 3D

Signature

sp.heatmap3d(title, labels=None, col_labels=None, values=None, *, variant="basic", matrix=None, orientation3d="iso", scene="default", theme="none", bg_color="#1a1a2e", width=900, height=560, x_label="", y_label="", z_label="", **kwargs) -> Chart

Aliases: sp.build_heatmap3d_chart(), sp.heatmap_3d(), sp.heatmap3d_chart(), sp.heatmaps3d().

Description

sp.heatmap3d() is the 3D twin of sp.heatmap(): every one of the 20 heatmap variants has a 3D form, selected with the same variant keyword and fed with the same data. Layouts come from shared, family-agnostic grid strategies (rectangular, weighted, bubble, radial, hex, ridge), so geometry is never hand-written per variant. Height and colour both encode the value.

Variants

VariantAliasesUses3D form
basicsimple, default, matrixlabels, col_labels, valuesOne column per cell on a rectangular grid: height and colour both follow the value.
annotatedannotate, labeled, valueslabels, col_labels, valuesSame landscape as basic; the value labels of the 2D variant become hover read-outs.
categoricalcategory, discrete_labels, catlabels, col_labels, valuesColumns take a palette colour per category value instead of a continuous colour scale.
unequalirregular, weighted, unevenlabels, col_labels, values, widths, rangesCell footprints follow widths and ranges (or a default irregular grid), like the 2D variable-size cells.
loglogarithmic, log_scale, log10labels, col_labels, valuesHeights and colours follow a logarithmic scale, so small values stay visible next to large ones.
discretebinned, stepped, bandslabels, col_labels, values, binsValues quantised into bins steps (5 by default): the landscape becomes terraces of equal height.
correlationcorr, diverging, pearsonlabels, col_labels, valuesDiverging around zero: positive values rise above the floor, negative ones sink below it.
densityimshow, viridis, smoothlabels, col_labels, valuesThe grid is interpolated three times denser into a field of thin columns, coloured with viridis.
contouriso, isolines, levellabels, col_labels, values, binsInterpolated and quantised into contour levels: stepped bands that follow the iso-lines.
temporalcalendar, time, date, timeserieslabels, col_labels, valuesTime grids interpolated into a smooth viridis terrain, one column per interpolated cell.
clusterclustermap, dendrogram, reorderlabels, col_labels, valuesRows and columns reordered by hierarchical clustering so similar lines sit side by side.
bubblesize_scaled, circle_heatmap, punchcardlabels, col_labels, valuesThe footprint of every column scales with its value: heavy cells fatten, light cells thin out.
marginalwith_marginals, histograms, side_barslabels, col_labels, valuesRow totals and column totals stand as extra columns beyond the grid edges, like marginal histograms.
confusionconfusion_matrix, classifier, cmlabels, col_labels, valuesDiagonal cells (correct predictions) keep their full tone while off-diagonal cells are muted.
pivotpivot_table, totals, summarylabels, col_labels, valuesRow and column totals are appended right next to the grid, pivot-table style.
polarwheel, clock, radial_heat, carbon_wheellabels, col_labels, valuesRows become concentric rings and columns become angular sectors around the centre.
radial_clustercircular_cluster, circos, radial_dendrogram, circular_dendrogramlabels, col_labels, valuesThe polar layout with rows and columns reordered by hierarchical clustering.
hex_gridhexbin_grid, hex_calendar, honeycomb, hex_matrixlabels, col_labels, matrixStaggered grid where odd rows shift half a cell, approximating a hexagonal tiling.
horizonhorizon_chart, stock_ridge, banded_horizon, sentiment_bandslabels, col_labels, matrixEvery row is a thin ridge line, rows spaced apart like stacked time-series bands.
moodsmood_matrix, punchcard_grouped, library, sentiment_gridlabels, col_labels, matrixRows grouped by their first :: token, with a gap between groups.

Data

labels are the row names, col_labels the column names and values the row-major matrix (or pass matrix=[[...], ...]). The legacy categories / x_labels spelling of heatmap3d keeps working.

3D planes

The viewpoint is independent from the variant: orientation3d picks the initial camera plane and applies to every variant; the view always stays draggable.

orientation3d="iso" — Isometric three-quarter view (default).
orientation3d="horizontal" — Side-on view, almost at floor level.
orientation3d="vertical" — Top-down view from above.
orientation3d="front" — Front elevation, nearly flat.

3D scenes

scene swaps the environment the columns are drawn in and applies to every variant and every plane.

scene="default" — Each series keeps its own categorical palette color, rendered as shaded 3D bars on a flat grid.
scene="terrain" — The data is resampled onto a dense grid and rendered as hundreds of thin colormap-colored columns, forming a continuous mountain-of-bars terrain.
scene="tower" — The data is resampled onto a dense field of round skyscraper-like towers instead of boxes, for a city-skyline reading of magnitude.
scene="radial" — The data is resampled onto a dense polar grid of rings and wedges radiating from the center, like a 3D radar/sonar sweep of the value field.
scene="podium" — The data is resampled onto a dense grid and quantized into stepped terrace levels, like a rice-terrace contour map, to read value bands at a glance.

Themes

theme restyles the whole canvas (colour grade and glow) and applies to every variant, scene and plane.

theme="deluxe"
theme="prism"
theme="aurora"
theme="inferno"
theme="frost"
theme="glow"
theme="glass"
theme="neon"
theme="cosmic"

Auto-scaling zone

The 3D zone (floor, walls, axes and camera) scales to the elements: its length, width and height follow the extents of the drawn blocks, a minimum floor depth keeps single rows readable, wide scenes are drawn flatter and the camera frames the whole box. The axis ticks read the real data range. Pass zone=[x, y, z] to force the proportions of the box instead; the longest side is normalised to 1.

Parameters

Returns

Chart object with an .html property and a .show() method.