facett-plotters — crate card
Reverse-engineered (from source — verify, don't trust the name)
- One-line pitch: The everyday XY chart (line/bar/scatter) plus the analytics chart types egui_plot lacks — box/violin/heatmap/candlestick/treemap — all hand-painted in immediate mode on egui::Painter, themeable, with a validated categorical palette + theme-derived colour ramps.
- Does:
ChartView(line/bar/scatter overVec<Series{label, points:(x,y)}>; derived axis bounds/gridlines/legend/tooltip; series-coloured frompalette::series_color— a small VALIDATED categorical set in fixed slot order, light/dark steps picked by the theme surface, never a hash;ChartKindswitch is oneMsg, observable instate_json). PlusBoxPlotView(quartiles + 1.5·IQR whiskers + outliers),ViolinView(Gaussian-KDE density silhouette),HeatmapView(matrix colour grid + gradient legend),CandlestickView(OHLC wick+body),TreemapView(squarify slice-and-dice). Each is aFacet(themeable().copyable().resizable(),copy()→ CSV) with FC-4 a11y nodes.ramp::Rampbuilds sequential/diverging ramps purely from the activeTheme; data→geometry math lives in pure tested functions (no GPU). Deliberately NOT using the retained-modeplotterscrate oregui_plot. - Key deps:
facett-core(Facet, theme, Painter path),egui,serde_json. - Shape: lib; small (per-chart modules: boxplot/candlestick/heatmap/ramp/treemap/violin); ships a
plotters_demoexample. - Observed role in the workspace: Re-exported by umbrella
facettasfacett::plotters. Complementsfacett-plot(which wraps egui_plot for line/bar).
Fill in (one line each — only the human knows these)
- Primary consumer(s):
- Why it exists (vs the obvious alternative):
- Hard constraint (airgap / no-C-deps / no-FFI / pure-Rust / etc.):
- Release cadence & independence (rides a parent? own repo someday?):
- Status (production / prototype / experimental / stubbed):
- Must-NOT-change invariant:
- Biggest known gap or TODO:
- Anything a newcomer would get wrong about it: