Choropleth Map 3D
Signature
sp.choropleth3d(title, labels=None, values=None, secondary_values=None, *, map="world", region="", bins=5, variant="sequential", orientation3d="iso", scene="default", theme="none", zone=None, max_points=None, bg_color="#1a1a2e", width=1200, height=600, x_label="", y_label="", z_label="", **kwargs) -> Chart
Aliases: sp.build_choropleth3d_chart(), sp.choropleth_3d(), sp.choropleth3d_chart(), sp.geo_map3d().
Description
sp.choropleth3d() is the 3D twin of sp.choropleth(): all 8 choropleth variants share the same 3D form, selected with the same variant keyword and fed with the same values. A literal country outline has no honest cuboid interior, so every matched region instead gets a column at its own geographic centroid, height following its value, ringed by a thin trace of its real coastline (for a region set small enough to trace legibly). daynight is the one exception: it carries no per-region data at all, so it draws the day/night terminator as a curved trace plus a sun marker at the subsolar point instead.
Variants
| Variant | Aliases | Uses | 3D form |
|---|---|---|---|
sequential | basic, default, heat | labels, values | One column per matched region at its centroid, height and tone following its value. |
binned | quantile, classed, steps | labels, values | The same columns, height and tone stepped into discrete bins instead of a continuous ramp. |
diverging | delta, change, rdbu | labels, values | Columns rise above the floor for a positive value and sink below it for a negative one. |
orthographic | globe, sphere, space | labels, values | The same columns as sequential; the 2D globe-look projection has no separate 3D form. |
polar | azimuthal, pole | labels, values | The same columns as sequential; the 2D polar projection has no separate 3D form. |
bivariate | two_variable, cross, dual | labels, values, secondary_values | The same columns, toned by secondary_values instead of values. |
dot_density | dots, stipple, scatter_fill | labels, values | The same columns as sequential; the 2D chart’s random dot-fill has no separate 3D form. |
daynight | day_night, terminator, solar | `` | No per-region columns at all: a curved terminator trace plus a sun marker at the subsolar point. |
Data
labels names each region (ISO codes or full names, matched against the map region set), values sets its column height and secondary_values feeds bivariate’s second channel.
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.