
Chart | Data shape | Use when |
|---|---|---|
Ordered conversion stage values. | Use it when conversion loss matters more than a shared axis. | |
Selected alert points over numeric axes. | Use it when only important events should pulse visually. | |
Five-number summaries across service groups. | Use it to compare distributions instead of averages. | |
OHLC values over intraday buckets. | Use it when price direction and range must be visible together. | |
X, y, and value triples for customers or segments. | Use it when business value should influence point size. | |
Rows of comparable numeric dimensions. | Use it when each item has several independent measures. | |
Efficiency points over value axes. | Use it to identify leading and lagging points. | |
Open, close, low, and high values by period. | Use it for financial price movement. | |
Job positions with duration or intensity values. | Use it for queue and schedule views. | |
Independent x/y samples. | Use it for correlation and clustering questions. | |
Multi-dimensional rows on parallel axes. | Use it when tradeoffs across measures matter. | |
Risk, return, and exposure values. | Use it to compare assets or initiatives with three measures. | |
Highlighted x/y points over value axes. | Use it when outliers should attract attention immediately. | |
Five-number summaries for quality scores. | Use it when spread and outliers matter. | |
Five-number summaries by region. | Use it for distribution comparison across regions. | |
Position/value pairs on one axis. | Use it for compact event timelines. | |
X, y, and magnitude triples. | Use it when size carries a third measure. | |
Rows of risk dimensions on parallel axes. | Use it for multidimensional risk assessment. | |
Stage/value pairs through a process. | Use it for operational process attrition. | |
OHLC-like movement values by period. | Use it when directional change and range both matter. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct StatisticalChart;
impl From<StatisticalChart> for Widget {
fn from(_: StatisticalChart) -> Widget {
Chart::new()
.title("Statistical")
.x_axis(Axis::category(vec!["A", "B", "C"]))
.y_axis(Axis::value())
.series(vec![LineSeries::new("Series").data(vec![1.0, 2.0, 3.0]).into()])
.into()
}
}
Area | What to decide | How to verify |
|---|---|---|
Data shape | Keep source rows in typed Rust structs, then map them into the series type shown in the example. | Unit test the mapping separately from rendering. |
Options | Choose axes, legends, labels, animation, and interaction based on the user's task. | Add a screenshot test when changing visual behavior. |
Accessibility | Provide a clear title and adjacent summary text for important trends or outliers. | Inspect the generated semantics and make sure the chart is understandable without color alone. |
Failure handling | Render an empty, loading, or error state before constructing the chart if data is unavailable. | Test empty data, partial data, and failed fetches. |
Performance | Prefer summarized or windowed data for very large datasets; keep full raw history in the data layer. | Profile frame time and interaction latency with representative data volumes. |