Skip to content

sprezzature · case studies

Maps

Good-quality cartography, reproducible on data of your choice.

← All case studies

Choropleth

One value per country on a hand-written closed-form Equal Earth projection — restores the equal-area property a plain equirectangular map quietly loses (Greenland does not read fourteen times its real size here). Color comes from an OKLCH-interpolated ramp, not a naive per-channel RGB lerp, verified colour-vision-deficiency-safe by actually running the simulation rather than asserting it. A diverging ramp switches on automatically when the data has a meaningful zero. A warm/cool duotone relief layer — real GMTED2010 elevation, not a flat hillshade — sits under the fills.

Sequential ramp : pale-to-navy blue, magnitude reads by lightness alone.
Diverging ramp : auto-detected from the data's sign, terracotta ↔ navy through a real neutral zero.
At scale : the relief layer — Andes, Rockies, Alps, Himalaya — reads clearly once rendered larger.

From sprezzature-maps, the cartography package split out of sprezzature-figures.

Thematic maps

Further glyph and cartogram techniques from sprezzature-figures, layered over the same offline Natural Earth basemap.

Bivariate choropleth : Two variables blended on a 3×3 color key.
Proportional-symbol map : Area-true √-scaled bubbles on a world basemap.
Connection / flow map : Great-circle arcs weighted by volume.
Pie-glyph map : A small pie chart placed at each region.
Bar-glyph map : Mini bar charts placed at each region.
Tile-grid cartogram : One equal tile per country, geographic layout.
Diverging + annotated : Signed change, no-data gray, key countries labeled.
Small multiples : One panel per year, class breaks frozen.

Situation maps

A layered reference plate for any region: coastline, international frontiers, country labels, a bathymetry contour halo, dual-unit scale bar and north arrow, on an auto-centred Lambert Conformal Conic projection (conformal, so shapes and angles stay true at city/province scale). Borders switch automatically between Natural Earth's 50m and 10m tiers depending on how zoomed-in the region is — a whole continent doesn't need 10m detail invisible at that scale; a single country does. The same relief technique as the choropleth above — real elevation, texture-shaded, warm/cool duotone — carries every plate.

Western Europe : the built-in reference demo — 50m borders, the Alps in full relief texture.
Iberia : Spain + Portugal — the clearest single example of the texture-shading relief technique.
Himalaya : an all-land plate — no sea to contrast against, relief carries the whole plate.
Switzerland, zoomed : a small enough bbox switches to the 10m border tier automatically.

Applied: areas of control

The same reference plate becomes a geopolitics-desk product once thematic layers go on top: classed pastel fills with white boundary casing, letter-spaced place labels, flashpoint markers, and a floating legend. Below is Ukraine. Schematic, from open sources, not intelligence.

Ukraine : government / occupied / contested along an approximate 2024 contact line. Schematic, not operational intelligence.

Reference plates from sprezzature-maps; the areas-of-control layer stays in sprezzature-figures.

How the choropleth and situation maps are built

Every map above is a hand-authored SVG document — no chart-grammar library, no headless browser, no external tiles fetched at render time. Everything geographic is a vendored, offline Natural Earth asset.

Equal Earth, not equirectangular
A closed-form polynomial projection (Šavrič, Patterson & Jenny, 2018) — equal-area, so a choropleth's colored surface isn't quietly lying about country size.
OKLCH color, not RGB lerp
Ramps interpolate in a perceptually-uniform space (Björn Ottosson's OKLab), verified colour-vision-deficiency-safe by actually simulating protanopia/deuteranopia/tritanopia on the rendered output.
Natural Earth, 50m and 10m
Public-domain vector borders, vendored offline. Situation maps pick the tier automatically from how zoomed-in the requested region is.
Real elevation, not a flat hillshade
Situation maps compute their relief from real GMTED2010 elevation: a directional hillshade blended with texture shading (Brown, 2010 — a fractional-order Laplacian applied in the frequency domain), which draws out ridgelines and drainage networks at every scale at once, then retinted warm-highlight/cool-shadow instead of flat grey. Reprojected pixel-by-pixel into each map's own projection (an exact analytic inverse for Lambert Conformal Conic; Newton-Raphson for the world choropleth's Equal Earth, which has no closed-form inverse).

Real data: the last five French presidential runoffs

The same carefully authored SVG map engine, on real data from the French Ministère de l'Intérieur: the winner's second-round vote share by département across the last five presidential elections, on one frozen blue scale so the panels compare. 2002 (the republican sprezzature against the far right) is near-uniform; 2012 (the closest) is the palest; 2017 and 2022 show the lighter départements where Marine Le Pen ran strongest.

Real data: the last five French presidential runoffs
Year Winner % Runner-up %
2002Jacques Chirac82.21Jean-Marie Le Pen17.79
2007Nicolas Sarkozy53.06Ségolène Royal46.94
2012François Hollande51.64Nicolas Sarkozy48.36
2017Emmanuel Macron66.10Marine Le Pen33.90
2022Emmanuel Macron58.55Marine Le Pen41.45

Source: Ministère de l'Intérieur (2nd-round results by département).

Map techniques (carefully authored SVG)

When a projection or a glyph falls outside a chart grammar, the same loop drives a carefully drawn Scalable Vector Graphics (SVG) map instead.

Dot-density map : One dot per N people inside real regions.
Hexbin map : Hexagonal binning of point density over a map.
Spike map : Vertical spikes at locations, height by value.
Hexbin map : Earthquakes binned into hexagons by count, tracing the Ring of Fire.
Binned grid map : Square-bin aggregation over geography, cells coloured by count.