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

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

VariantAliasesUses3D form
basicsimple, defaultx, yA small marker per point.
categoricalgrouped, groups, categoryx, y, categoriesThe same markers, one class (and colour) per category.
symbolsmarker, markers, shape, shapesx, yThe same markers as basic, from the 2D chart’s per-category marker shapes.
labeledlabels, text, annotatedx, yThe same markers as basic; names show on hover in every variant.
regressiontrendline, fit, olsx, yThe markers plus a linear best-fit line laid across them.
residualresiduals, residplotx, yEvery point repositioned to its vertical distance from the best-fit line, flattening the trend.
dual_stylehue_style, two_wayx, yThe same markers as basic, from the 2D chart’s two-hue category styling.
continuous_huenumeric_hue, colormapx, y, color_valuesThe same markers toned on a continuous ramp by color_values.
facetfacets, small_multiples, relplotx, y, categoriesEvery category on its own depth row, a small multiple per group.
sizedsize_scale, bubble_scatter, magnitude_sizex, y, color_valuesMarker size and tone both scale with color_values.
wide_formwide, multi_series, columnsx, seriesEvery column of series its own depth row, all sharing the same x.
rugrugplot, marginal_ticks, carpet_ticksx, yThe 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.