1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! **facett-plotters** — the chart types [`egui_plot`](https://docs.rs/egui_plot)
//! (→ `facett-plot`) *lacks*, painted in **immediate mode** directly on an
//! [`egui::Painter`]. `egui_plot` already covers line/scatter/bar/histogram with
//! zoom/pan; this crate fills the analytics long-tail Plotly defines:
//!
//! - [`BoxPlotView`] — quartiles + 1.5·IQR whiskers + outliers
//! - [`ViolinView`] — Gaussian-KDE density silhouette
//! - [`HeatmapView`] — a matrix as a colour grid with a gradient legend
//! - [`CandlestickView`] — OHLC bars (wick + body)
//! - [`TreemapView`] — weighted slice-and-dice rectangles
//!
//! ## Why hand-rolled, not the `plotters` crate
//! The `plotters` crate is **retained + raster/SVG-backend driven**: its egui
//! integration renders to a bitmap and blits a texture every frame, with no
//! immediate-mode hit-testing, no live theming, and no hover model. facett's
//! charts must read [`facett_core::theme`] live (re-skin on theme switch),
//! expose cheap hover-readouts, and implement the [`Facet`](facett_core::Facet)
//! contract (`caps()` + `copy()` → CSV). Hand-painting on the egui `Painter`
//! (the same path `facett-core`/`facett-map` use) is the lighter, better-fitting
//! choice — so `plotters` is *not* a dependency.
//!
//! ## Theme-derived colour ramps
//! No palette is hardcoded. [`ramp::Ramp`] builds a **sequential**
//! (`bg`→`accent`→`glow`) or **diverging** (`accent`→`text_dim`→`glow`) ramp
//! purely from the active [`Theme`](facett_core::Theme), so heatmaps/treemaps
//! follow whatever theme is set.
//!
//! Each view is a [`Facet`](facett_core::Facet): it declares
//! `caps().themeable().copyable().resizable()`, paints itself, and `copy()`
//! emits the underlying data as CSV. The data→geometry math (quartiles, KDE
//! bins, OHLC mapping, heatmap cell layout, treemap squarify) lives in **pure,
//! tested functions** that need no GPU.
pub use ;
pub use ;
pub use ;
pub use Ramp;
pub use ;
pub use ;