You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Tracking: trace types not yet exposed in plotly.rs (plotly.js 3.7.0 parity) #422
Tracking: trace types not yet exposed in plotly.rs (plotly.js 3.7.0 parity)
Summary
Measured against the actively-supported trace types in plotly.js 3.7.0, plotly.rs exposes 27 of 46, leaving 19 unimplemented. This issue tracks the remaining trace types so contributions can be coordinated and duplicate work avoided.
plotly.js 3.7.0 defines 49 trace types, but 3 are deprecated (the Mapbox family — see below) and are excluded from the parity target. The list was generated by diffing the trace type tags plotly.rs can serialize (the PlotType enum) against the authoritative plot-schema.json shipped with plotly.js v3.7.0.
Note: this is trace-type coverage. Attribute-level parity for the already-implemented traces is being addressed separately in the plotly.js 3.7 attribute backfill work.
Deprecated in plotly.js 3.7.0 — excluded from parity (3)
These are deprecated upstream in favour of the MapLibre map subplot traces (migration guide):
Deprecated trace
Recommended replacement
plotly.rs status
scattermapbox
scattermap
both already exposed
densitymapbox
densitymap
both already exposed
choroplethmapbox
choroplethmap
replacement already exposed; deprecated trace not implemented (and won't be)
plotly.rs already ships every recommended map replacement, so there is no coverage gap here — no action needed. The two deprecated traces that are implemented (scattermapbox, densitymapbox) can be retained for back-compat and eventually deprecated in lockstep with upstream.
(plus the deprecated scattermapbox and densitymapbox, listed above)
Missing — actively-supported (19)
3D scientific / volumetric
cone — 3D vector / quiver fields
streamtube — 3D flow streamlines
isosurface — 3D isosurfaces from volume data
volume — 3D volume rendering
Carpet family (needs a shared carpet-axis abstraction)
carpet — base carpet axis system
contourcarpet — contours on a carpet axis
scattercarpet — scatter on a carpet axis
Cartesian statistical / financial
histogram2d — 2D histogram heatmap
funnel — funnel charts
waterfall — waterfall / bridge charts
Parallel-coordinate
parcoords — parallel coordinates (continuous)
parcats — parallel categories (categorical)
Specialized subplots
barpolar — bar charts on a polar axis (wind-rose)
scatterternary — scatter on a ternary (3-component) plot
scattersmith — scatter on a Smith chart (RF / impedance)
Hierarchical
icicle — icicle charts (sibling of sunburst / treemap)
Other
indicator — KPI gauges / number + delta displays
splom — scatter-plot matrix
funnelarea — funnel-area (pie-like funnel)
Found during implementation
histogram2dcontour — 2D histogram rendered as contours. Listed above as already exposed, but plotly.rs only had a PlotType variant and no trace that could emit it.
Suggested prioritization
Cheap wins — close siblings of existing traces that can reuse most of their building blocks: histogram2d (cf. histogram2dcontour / heatmap) and icicle (cf. sunburst / treemap).
High user demand — common business-chart types: indicator, funnel, waterfall, barpolar.
Larger effort — the carpet family (carpet + contourcarpet + scattercarpet) depends on first modelling a shared carpet-axis abstraction.
Notes for implementers
Adding a trace follows the established pattern (see CONTRIBUTING.md / CLAUDE.md):
Create plotly/src/traces/<name>.rs, derive FieldSetter with #[field_setter(box_self, kind = "trace")].
Add the corresponding PlotType variant (with the correct serde rename).
Implement Trace::to_json, then re-export from traces/mod.rs and lib.rs.
Add a serialize round-trip test and a CHANGELOG.md entry.
Hi @andrei-ng ,
I took the liberty of creating a new tracking issue for all the available traces.
I implemented Indicator, Histogram2d and Icicle for the latest version of qsv.
Activity
jqnatividad commentedon Jul 12, 2026
Hi @andrei-ng ,
I took the liberty of creating a new tracking issue for all the available traces.
I implemented Indicator, Histogram2d and Icicle for the latest version of qsv.
https://dathere.github.io/qsv/gallery.html
jqnatividad commentedon Jul 12, 2026
I also went ahead and did splom and parcats on #425
andrei-ng commentedon Jul 19, 2026
@jqnatividad , thanks for the PRs.
I will review and merge them this week.
feat(traces): add Indicator, Histogram2d, Icicle trace types + layout…
feat(traces): add Indicator, Histogram2d, Icicle trace types + layout…
feat(traces): add Indicator, Histogram2d, Icicle trace types + layout…
feat(traces): add BarPolar and FunnelArea trace types (plotly#422)
feat(traces): add Cone, StreamTube, IsoSurface and Volume traces (plo…
feat(traces): add Parcoords trace type (plotly#422)
feat(traces): add ScatterTernary and ScatterSmith with their subplots (…
feat(traces): add Carpet, ScatterCarpet and ContourCarpet traces (plo…
docs(changelog): update 0.15.0 section for full trace coverage
fix: address review findings on the new trace types (plotly#422)
feat(traces): add Histogram2dContour trace type (plotly#422)