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

Sunburst Chart 3D

Signature

sp.sunburst3d(title, labels=None, parents=None, values=None, *, variant="basic", 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_sunburst3d_chart(), sp.sunburst_3d(), sp.sunburst3d_chart(), sp.sunburst3d_family(), sp.sunbursts3d().

Description

sp.sunburst3d() is the 3D twin of sp.sunburst(): every one of the 7 sunburst variants has a 3D form, selected with the same variant keyword and fed with the same hierarchy. Every node draws its own ring arc at a radius set by its depth and an angular span set by its share of its parent’s value, toned by which top-level branch it belongs to. Rings, depth-fade and gaps come from a shared hierarchy strategy also used by icicle3D, so geometry is never hand-written per variant. Very deep or wide trees are capped level by level to a block budget, always keeping whole depth levels intact.

Variants

VariantAliasesUses3D form
basicdefault, classic, ringlabels, parents, valuesNested rings, one per depth level, each wedge sized by its own angular share of its parent.
donuthole, ring_hole, donut_ringlabels, parents, valuesThe same nested rings with a wider hole at the centre.
outlinedoutline, stroke, wireframelabels, parents, valuesFlatter wedges, closer to a wireframe reading of the same hierarchy.
gappedspaced, isolated, petalslabels, parents, valuesA small angular gap opens between every wedge.
depth_fadefade, fading, depthlabels, parents, valuesRings shrink in height as they go deeper, so depth reads from the silhouette, not just the radius.
monomonochrome, single, uniformlabels, parents, valuesEvery wedge takes the same hue instead of one per branch.
zoomablezoom, animated, interactive, drilllabels, parents, valuesThe same nested rings as basic; the interactive drill-down is a 2D-only feature.

Data

labels name each node, parents gives the label of its parent (empty for a root) and values its own weight; a node’s value is grown to the sum of its children when that sum is larger, exactly like the 2D chart. Each branch takes its own hue, so a tree with several top-level entries (several rows with an empty parents) reads more colourfully than one wrapped in a single root.

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.