Tracking: trace types not yet exposed in plotly.rs (plotly.js 3.7.0 parity)
还没有人认领这个 Issue。
- 主要语言
- Rust
- 星标
- 1.5k
- 派生
- 128
- PR 合并指标
- 30 天内没有已合并 PR
描述
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.
Currently exposed — actively-supported (27)
bar · box · candlestick · choropleth · choroplethmap · contour · densitymap · heatmap · histogram · histogram2dcontour · image · mesh3d · ohlc · pie · sankey · scatter · scatter3d · scattergeo · scattergl · scattermap · scatterpolar · scatterpolargl · sunburst · surface · table · treemap · violin
(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 ofsunburst/treemap)
Other
-
indicator— KPI gauges / number + delta displays -
splom— scatter-plot matrix -
funnelarea— funnel-area (pie-like funnel)
Suggested prioritization
- Cheap wins — close siblings of existing traces that can reuse most of their building blocks:
histogram2d(cf.histogram2dcontour/heatmap) andicicle(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, deriveFieldSetterwith#[field_setter(box_self, kind = "trace")]. - Add the corresponding
PlotTypevariant (with the correct serderename). - Implement
Trace::to_json, then re-export fromtraces/mod.rsandlib.rs. - Add a serialize round-trip test and a
CHANGELOG.mdentry.
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
先从 CONTRIBUTING.md 和 CLAUDE.md 开始,然后检查 plotly/src/traces/ 中现有的 trace 以及 PlotType enum。选择一个尚未勾选的 trace 类型,按照既有模式添加其 trace 模块、enum 变体、导出、序列化往返测试,以及 CHANGELOG.md 条目。选定的 trace 已公开且能够正确序列化,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- rust
- 领域
- data-visualization
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 38/100