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

Lollipop Chart 3D

Signature

sp.lollipop3d(title, labels=None, values=None, *, variant="basic", color_groups=None, sort_order="none", 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_lollipop3d_chart(), sp.lollipop_3d(), sp.lollipop3d_chart(), sp.lollipop3d_family(), sp.lollipops3d().

Description

sp.lollipop3d() is the 3D twin of sp.lollipop(): every one of the 9 lollipop variants has a 3D form, selected with the same variant keyword and fed with the same labels and values. Every lollipop is a thin stem topped by a head; the head is sized so it looks cubic once the zone is fitted, and rows, rings and panels come from the shared column layouts, so geometry is never hand-written per variant. Long inputs are pooled to a budget (max_points), so hundreds of thousands of values stay interactive.

Variants

VariantAliasesUses3D form
basicdefault, classic, verticallabels, valuesOne thin stem per value topped by a head cube; the height is the value.
clevelandhorizontal, h, rowlabels, valuesThe basic layout turned a quarter-turn: the categories run along the depth axis.
divergingdiv, signed, deltalabels, valuesStems grow up or down from the mean instead of zero, toned green above it and red below.
circularpolar, radial, roundlabels, valuesThe stems stand on a ring, one per category, like a radial dot plot.
officegrouped, season, panellabels, values, color_groupsCategories laid out panel by panel with a gap between color_groups, one colour per group (a season, a team).
conditional_colorconditional, threshold_colorlabels, valuesHorizontal stems coloured by sign: one colour for values at or above zero, another for negative ones.
trendcolormap, arrow, annotatedlabels, valuesHeads toned along the colormap by value and joined by a sloped ribbon that follows the trend.
customdiamond, styledlabels, valuesThe head is a faceted diamond, a rhombic prism cut from two sloped wedges, instead of a cube.
duelhead_to_head, versus, rivalry, radial_diverginglabels, values, color_groupsTwo groups face each other on a ring: the first rises above the ring plane, the second hangs below it.

Data

labels name the lollipops and values give their height; color_groups separates and colours the panels of office and the two sides of duel. Passing x, y and z together keeps the historical call that draws one lollipop per spatial point.

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.