
Chart | Data shape | Use when |
|---|---|---|
Permission-like matrix values. | Use it for dense access and security matrices. | |
Grid values representing availability. | Use it to compare uptime windows. | |
Date/value pairs over a calendar range. | Use it to show daily activity patterns. | |
Grid of pairwise values. | Use it for correlation-like analysis. | |
Date/value pairs for retention events. | Use it to scan day-level consistency. | |
Daily sales values over a date range. | Use it when weekday and date position matter. | |
Dense grid with continuous color scale. | Use it for density and occupancy surfaces. | |
Grid coordinates with numeric intensity. | Use it to find concentration by hour and day. | |
Feature/category values on a two-dimensional grid. | Use it to find usage hotspots. | |
Daily incident counts over a date range. | Use it when the calendar shape carries meaning. | |
Numeric grid values mapped to color. | Use it when color should explain intensity. | |
Daily quality values. | Use it for quality gate consistency over time. | |
Queue depth by queue and time bucket. | Use it for operational queues. | |
Risk values by component and area. | Use it before releases to focus attention. | |
Daily values across a release period. | Use it for calendar-driven delivery views. | |
Resource and time values on a matrix. | Use it for infrastructure saturation. | |
Larger matrix of risk values. | Use it when dense matrix comparison matters. | |
Two-dimensional grid cells with values. | Use it for workload concentration. | |
Date/value activity pairs. | Use it to show consistency and spikes over time. | |
Daily build values with a color scale. | Use it when calendar and intensity both matter. |
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};
pub struct HeatmapChart;
impl From<HeatmapChart> for Widget {
fn from(_: HeatmapChart) -> Widget {
Chart::new()
.title("Heatmap")
.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. |