
Chart | Data shape | Use when |
|---|---|---|
Chart data with explicit utility actions. | Use it when analysis actions belong close to the chart. | |
Chart data with a typed text callout. | Use it for guided dashboards and reports. | |
Series data with axis-oriented tooltip intent. | Use it when the whole axis position is the hover target. | |
Line values with highlighted breach band. | Use it when unsafe ranges need visible boundaries. | |
Point data with visible brush preview. | Use it for exploratory selection. | |
Scatter points plus brush rectangle configuration. | Use it when users select data before drilling in. | |
Period labels with changing chart state. | Use it for capacity changes across time. | |
Ordered data with a selected zoom range. | Use it for long series where one window is active. | |
Trend data with event mark points. | Use it when specific moments explain the data. | |
Chart data with restore, brush, zoom, and save actions. | Use it when chart controls need a consistent built-in place. | |
Chart plus typed rect, text, and line graphics. | Use it for callouts and shaded product ranges. | |
Trend line with typed graphic overlay. | Use it to add explanations without leaving the chart model. | |
Grouped series with tooltip intent. | Use it when comparison needs hover detail. | |
Series data with item-level tooltip intent. | Use it when individual marks carry detail. | |
Trend data plus mark lines and shaded bands. | Use it to keep thresholds in the chart instead of external notes. | |
Chart data with reset action included. | Use it when user exploration needs a safe reset. | |
Scatter points with selection configuration. | Use it when users inspect clusters interactively. | |
Long ordered telemetry values with zoom. | Use it for monitoring and investigation. | |
Chart data with release timeline options. | Use it for versioned or period-based views. | |
Chart data with a timeline control. | Use it when the same view switches between periods. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct InteractionChart;
impl From<InteractionChart> for Widget {
fn from(_: InteractionChart) -> Widget {
Chart::new()
.title("Interaction")
.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. |