Gauge Chart 3D
Signature
sp.gauge3d(title, value=0, min_val=0, max_val=100, label="", *, variant="basic", comparison=0, history=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_gauge3d_chart(), sp.gauge_3d(), sp.gauge3d_chart(), sp.gauge3d_family(), sp.speedometer3d().
Description
sp.gauge3d() is the 3D twin of sp.gauge(): every one of the 9 gauge variants has a 3D form, selected with the same variant keyword and fed with the same value and range. A ring of small columns sweeps the dial; the columns up to the value rise taller and take the tone of the threshold band the value falls in (green through amber to red by default), while the rest of the ring stays low as a track. Needle, ticks, halo and the inner comparison ring come from a shared dial strategy, so geometry is never hand-written per variant.
Variants
| Variant | Aliases | Uses | 3D form |
|---|---|---|---|
basic | default, half, classic | value, min_val, max_val, label | A half-circle dial with background threshold bands, a filled ring up to the value and a needle pointing at it. |
radial | donut, ring, full | value, min_val, max_val, label | A full donut ring filled clockwise from the top up to the value’s fraction of the range. |
arc270 | three_quarter, arc, wide | value, min_val, max_val, label | A three-quarter (270°) sweep with the same threshold bands as basic, without a needle. |
sleek | minimal, clean, flat | value, min_val, max_val, label | A minimal half-circle: a plain track and a single-tone filled ring, no bands or needle. |
tick | tickmarks, scaled, ruler | value, min_val, max_val, label | A half-circle with graduation ticks around the rim, longer every fifth mark. |
segmented | battery, signal, chunked | value, min_val, max_val, label | The fill broken into discrete chunky segments, like a battery or signal-strength meter. |
glow | neon, halo, luminous | value, min_val, max_val, label | The filled ring sits on a wide, flat halo that makes it stand out. |
concentric | rings, target, dual | value, min_val, max_val, comparison | Two rings: the value on the outer ring, the comparison value on an inner ring. |
sparkline | trend, history, with_trend | value, min_val, max_val, history | The dial plus a small ribbon tracing the value’s recent history. |
Data
value, min_val and max_val set the needle position; label names the gauge in the tooltip. comparison draws a second mark used by concentric, and history feeds the trailing ribbon of sparkline.
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.