Dendrogram Chart 3D
Signature
sp.dendrogram3d(title, labels=None, matrix=None, *, variant="vertical", parents=None, k=3, orientation3d="iso", scene="default", theme="none", zone=None, max_points=None, bg_color="#1a1a2e", width=900, height=560, x_label="", y_label="", z_label="", **kwargs) -> Chart
Aliases: sp.build_dendrogram3d_chart(), sp.dendrogram_3d(), sp.dendrogram3d_chart(), sp.dendrogram3d_family(), sp.dendrograms3d().
Description
sp.dendrogram3d() is the 3D twin of sp.dendrogram(): every one of the 8 dendrogram variants has a 3D form, selected with the same variant keyword and fed with the same leaves. Every merge node is a small cube positioned by its depth and order among siblings, and every edge between a node and its parent is a chain of small interpolated cubes rather than a single rotated block, since a block can only align to the axes. Nodes and edges come from a shared node/edge strategy (lineage) built for any tree or network family, not just dendrograms. k highlights that many clusters by tone.
Variants
| Variant | Aliases | Uses | 3D form |
|---|---|---|---|
vertical | top, default, classic | labels, matrix | Nodes stacked depth by depth top to bottom, elbowed edges (a right-angle turn at the child’s depth) linking child to parent. |
horizontal | left, h | labels, matrix | The same elbowed tree turned a quarter-turn: depth runs along the width axis instead of the row axis. |
radial | circular, polar | labels, matrix | The tree wrapped around a ring: depth becomes radius and leaves spread by angle, edges still elbowed. |
compact | dense, tight | labels, matrix | The same vertical elbowed tree with a tighter row spacing between depth levels. |
elegant | smooth, rounded | labels, matrix | The same vertical tree with a straight diagonal edge from parent to child instead of an elbow. |
triangular | diagonal, straight, angular | labels, matrix | The same straight diagonal parent-to-child edges as elegant, from the triangular 2D layout. |
genealogy | evolution, generative, spiral_tree, design_space | labels, parents | The same radial ring as radial, from a hand-built genealogy tree passed through parents. |
bloom | cluster_bloom, petal, emotion_map, constellation | labels, parents | The same radial ring with a tighter radius step between depth levels, drawing the rings closer together. |
Data
labels name each leaf and matrix gives its raw feature row, clustered into a tree the same way as the 2D chart; k sets the highlighted cluster count. A tree can instead be supplied ready-made with parents (the label of each node’s parent, empty for a root), as genealogy and bloom do.
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.