
Chart | Data shape | Use when |
|---|---|---|
Related alert nodes and links. | Use it for incident analysis. | |
Nested budget values sized by area. | Use it for budget share exploration. | |
Channel values over time. | Use it to show mix changes without losing continuity. | |
Hierarchical values sized by area. | Use it for part-to-whole hierarchy analysis. | |
Relationship nodes and edges. | Use it when paths and relationships matter more than axes. | |
Nested customer groups by value. | Use it for segment hierarchy and share. | |
Flow nodes and links. | Use it for transfer and loss diagrams. | |
Nested values in radial layers. | Use it for hierarchical composition with depth. | |
Nested file or team ownership nodes. | Use it for repository and ownership views. | |
Nodes and directed weighted links. | Use it when movement between stages is the question. | |
Hierarchy values as radial rings. | Use it when hierarchy and whole composition both matter. | |
Nested named nodes with values. | Use it for ownership and dependency hierarchy. | |
Platform nodes and dependency edges. | Use it for system overview screens. | |
Nested product categories. | Use it when users browse hierarchical structure. | |
Nested nodes arranged radially. | Use it when a compact hierarchy is needed. | |
Support stages as flow links. | Use it to analyze process movement. | |
Nodes and links with values. | Use it to explain relationship topology. | |
Nested values by storage class. | Use it when area should communicate magnitude. | |
Stacked stream values by time and category. | Use it for shifting composition over time. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct HierarchyChart;
impl From<HierarchyChart> for Widget {
fn from(_: HierarchyChart) -> Widget {
Chart::new()
.title("Hierarchy")
.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. |