Choropleth Design Lab
Compare three ways to classify a numeric property of geographic areas. Equal intervals divide the value span, quantiles use sorted observations, and Jenks minimizes within-class squared variation. Each method shows the actual polygons, legend, counts and gaps in the data. A zero remains a measured value; missing and nonnumeric properties use a separate hatch. Enter what the numbers mean and their unit before generating a map.
Key features
- Local Polygon and MultiPolygon GeoJSON validation, including holes and WGS84 coordinates
- Equal interval, duplicate-aware quantile and exact dynamic-programming Jenks breaks for up to 100 areas
- Three area SVG maps with one shared sequential palette and a patterned unmapped class
- Per-class ranges, counts, shares and within-class squared variation for method comparison
- Separate valid zero, absent/null and nonnumeric observations
- Download each method's standalone SVG and classified GeoJSON plus a three-method comparison CSV
How to use
- Open or paste a local WGS84 Polygon/MultiPolygon FeatureCollection, or load the self-created example.
- Select a property with numeric values, then name the measured value and its unit. Counts are not automatically divided by area or population.
- Choose two to seven requested classes and compare all three methods. Repeated observations remain together and may reduce the effective class count.
- Inspect the actual area maps, legends, missing hatch, class counts and within-class variation.
- Save any method's SVG and classified GeoJSON, or save the combined CSV for later review.
Use cases
- Compare raw service counts across local districts while noting that district size can differ
- See whether an extreme value makes equal intervals uninformative
- Check quantile and Jenks class boundaries before publishing a thematic map
- Report missing attributes distinctly from legitimate zero values
Frequently asked questions
Does a zero mean missing?
No. Finite numeric 0 is classified. Absent and null properties are missing; strings, booleans and objects are nonnumeric and shown separately.
How is a value exactly on a class boundary assigned?
The first class includes its lower and upper values. Later classes exclude their lower boundary and include their upper boundary, so an exact shared boundary stays in the lower class.
Why might fewer classes appear than I requested?
A constant property has one class. Quantiles and Jenks keep identical values together, so duplicate observations can collapse boundaries and produce fewer effective classes.
Do these maps compare rates or densities automatically?
No. They classify the numeric property as supplied. Counts per area can be misleading when populations or area sizes differ; compute a suitable rate or density before importing when that is the intended measure.
Are the areas drawn on an external basemap?
No. The browser draws the supplied WGS84 polygons with a local equirectangular fit, without external map tiles. Shape and area distortion, especially at high latitude, remains. The map does not validate source geography or data quality.
Are my GeoJSON files uploaded?
No. Parsing, classification and downloads run in this browser tab. File contents are not sent to a server API.
Privacy
GeoJSON and numeric properties remain in this browser tab. The tool performs no uploads or external map-tile requests.
Comments & questions