density_mapbox/
density_mapbox.rs

1use plotlars::{DensityMapbox, Plot, Text};
2use polars::prelude::*;
3
4fn main() {
5    // Create sample data with US city population density
6    let data = df![
7        "city_lat" => [40.7128, 34.0522, 41.8781, 29.7604, 33.4484, 37.7749, 47.6062, 42.3601,
8                       32.7767, 39.9526, 38.9072, 35.2271, 30.2672, 36.1699, 39.7392],
9        "city_lon" => [-74.0060, -118.2437, -87.6298, -95.3698, -112.0740, -122.4194, -122.3321, -71.0589,
10                       -79.9309, -75.1652, -77.0369, -80.8431, -97.7431, -115.1398, -104.9903],
11        "population_density" => [27000.0, 8092.0, 11841.0, 3540.0, 3165.0, 18581.0, 8386.0, 13321.0,
12                                 4707.0, 11379.0, 9856.0, 2457.0, 1386.0, 4525.0, 4193.0],
13        "city_name" => ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "San Francisco",
14                       "Seattle", "Boston", "Charleston", "Philadelphia", "Washington DC",
15                       "Charlotte", "Austin", "Las Vegas", "Denver"]
16    ].unwrap();
17
18    DensityMapbox::builder()
19        .data(&data)
20        .lat("city_lat")
21        .lon("city_lon")
22        .z("population_density")
23        .center([39.8283, -98.5795]) // Center of USA
24        .zoom(3)
25        .plot_title(
26            Text::from("US City Population Density")
27                .font("Arial")
28                .size(20),
29        )
30        .build()
31        .plot();
32
33    println!("Density map plotted!");
34}