Skip to main content

basic_treemap/
basic_treemap.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2//! Basic treemap example: sales by product category.
3
4fn main() -> esoc_chart::error::Result<()> {
5    let labels = vec![
6        "Electronics",
7        "Clothing",
8        "Food & Beverage",
9        "Home & Garden",
10        "Books",
11        "Sports",
12        "Toys",
13        "Automotive",
14    ];
15    let values = vec![320.0, 180.0, 150.0, 120.0, 80.0, 60.0, 45.0, 30.0];
16
17    let mut theme = esoc_chart::new_theme::NewTheme::light();
18    theme.base_font_size = 13.0;
19    theme.title_font_size = 18.0;
20    theme.legend_font_size = 11.0;
21    theme.font_family = "Inter, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif".into();
22
23    let svg = esoc_chart::express::treemap(&labels, &values)
24        .title("Sales by Category ($M)")
25        .theme(theme)
26        .size(900.0, 600.0)
27        .to_svg()?;
28
29    std::fs::write("treemap.svg", &svg)?;
30    println!("Wrote treemap.svg ({} bytes)", svg.len());
31    Ok(())
32}