
Chart | Data shape | Use when |
|---|---|---|
Point samples with brush selection. | Use it for interactive telemetry exploration. | |
Date/value rows mapped to a calendar. | Use it when dates are a first-class data field. | |
Region/value rows. | Use it when geographic views come from named records. | |
Encoded grid cells with values. | Use it when heatmaps come from generic records. | |
Filtered label/value rows. | Use it when the chart represents a selected dataset slice. | |
Vertex and edge records. | Use it when flow data is modeled explicitly. | |
Changing stage values. | Use it when pipeline stages update during the session. | |
Highlighted alert points. | Use it for active events and outliers. | |
Changing category values. | Use it for updating status summaries. | |
Append-like ordered telemetry samples. | Use it for live monitoring views. | |
Changing dimension vectors. | Use it for live multidimensional scorecards. | |
Single changing status value. | Use it when a live number needs a strong visual shape. | |
Tabular data encoded into line series. | Use it when named fields should drive series values. | |
Tabular product/year/value records. | Use it when several chart views should share one dataset. | |
Rows with several numeric dimensions. | Use it when the same table powers multidimensional analysis. | |
Period labels switching chart state. | Use it for period-over-period analysis. | |
Rows sorted into category/value pairs. | Use it when rank comes from data transformation. | |
Rows encoded into x, y, and size. | Use it when one table feeds bubble visualization. | |
Multiple encoded measures over one category axis. | Use it when stack series share the same source table. | |
Telemetry chart with built-in actions. | Use it when live charts need controlled exploration. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct DatasetChart;
impl From<DatasetChart> for Widget {
fn from(_: DatasetChart) -> Widget {
Chart::new()
.title("Dataset")
.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. |