Scatter Chart 3D
Signature
sp.scatter3d(title, x=None, y=None, z=None, labels=None, categories=None, color_values=None, series=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_scatter3d_chart(), sp.scatter_3d(), sp.scatter3d_chart(), sp.scatter3d_family(), sp.scatters3d().
Description
sp.scatter3d() carries two independent forms under one name, chosen by whether z is given. Pass x, y and z together and it keeps its original job: a real spatial point cloud in 3D space, optionally coloured by color_values, capped to a budget for huge clouds. Leave z out and every one of the 12 2D scatter variants gets a 3D form instead, selected with the same variant keyword and fed with the same x/y rows — the family this page otherwise documents.
Variants
| Variant | Aliases | Uses | 3D form |
|---|---|---|---|
basic | simple, default | x, y | A small marker per point. |
categorical | grouped, groups, category | x, y, categories | The same markers, one class (and colour) per category. |
symbols | marker, markers, shape, shapes | x, y | The same markers as basic, from the 2D chart’s per-category marker shapes. |
labeled | labels, text, annotated | x, y | The same markers as basic; names show on hover in every variant. |
regression | trendline, fit, ols | x, y | The markers plus a linear best-fit line laid across them. |
residual | residuals, residplot | x, y | Every point repositioned to its vertical distance from the best-fit line, flattening the trend. |
dual_style | hue_style, two_way | x, y | The same markers as basic, from the 2D chart’s two-hue category styling. |
continuous_hue | numeric_hue, colormap | x, y, color_values | The same markers toned on a continuous ramp by color_values. |
facet | facets, small_multiples, relplot | x, y, categories | Every category on its own depth row, a small multiple per group. |
sized | size_scale, bubble_scatter, magnitude_size | x, y, color_values | Marker size and tone both scale with color_values. |
wide_form | wide, multi_series, columns | x, series | Every column of series its own depth row, all sharing the same x. |
rug | rugplot, marginal_ticks, carpet_ticks | x, y | The markers plus a tick at every point’s position along both floor margins. |
Data
Without z: x/y position each point, categories groups or facets it, color_values drives continuous tone or size, and series (as parallel y-columns) feeds wide_form.
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.