
Chart | Data shape | Use when |
|---|---|---|
One bounded value mapped to an arc. | Use it when a single current status dominates the screen. | |
One confidence score on a gauge arc. | Use it when a status panel needs a primary quality number. | |
Single capacity value in a bounded range. | Use it when headroom is the only number that matters. | |
Angle/radius samples around a cycle. | Use it for circular process metrics. | |
Single score value in a bounded range. | Use it for health and readiness summaries. | |
Label/value pairs with an open center. | Use it when the center can carry a total or primary label. | |
Expense categories as a small whole. | Use it for budget composition. | |
Label/value pairs with area-oriented rose layout. | Use it when relative shape is more important than a precise angle. | |
Label/value pairs around a circle. | Use it when cyclic position is meaningful. | |
Label/value pairs with radius emphasis. | Use it when presentation value is high and categories are few. | |
Label/value pairs for a small whole. | Use it when part-to-whole reading is the main task. | |
Platform dimensions as comparable vectors. | Use it to summarize readiness across product areas. | |
Several same-length dimensional vectors. | Use it to compare shapes across a few dimensions. | |
Revenue categories as label/value pairs. | Use it when contribution to total revenue matters. | |
Risk category values in radial form. | Use it for executive risk snapshots where visual emphasis helps. | |
Cyclic label/value pairs. | Use it when the shape wraps around a repeated cycle. | |
Health dimensions on a radial profile. | Use it for compact status summaries. | |
Traffic or source categories with values. | Use it for small source distributions. | |
Team capability vectors. | Use it when balance across dimensions is the main reading. | |
Angle/radius samples. | Use it for directional or cyclic measures. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct RadialChart;
impl From<RadialChart> for Widget {
fn from(_: RadialChart) -> Widget {
Chart::new()
.title("Radial")
.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. |