How do I show a number per region on a map? (map, choropleth)
In brief
How do I show a number per region on a map? The page "Map" (on the data page) colours areas by a value (choropleth map). It needs a column with the area code, one with the value and the boundaries. A table with the same values always sits beside it.
How it works in Statable
- Boundaries: open your own GeoJSON file or "Load boundaries from Eurostat".
- Choose the column with the area code, the column with the value and the property of the boundaries that holds the code.
- Choose the division: quantiles (the same number of areas per class) or classes of equal width.
- Look at the map and the table; save the picture as SVG or PNG, the table as CSV.
Boundaries and their licence
Statable does not ship any boundaries. There are two ways:
- Open your own GeoJSON file. It contains areas as Polygon or MultiPolygon in degrees of longitude and latitude (WGS 84), at most 20 MB and at most 20,000 areas. Whoever shares the map names the source and the usage rights of the boundaries.
- "Load boundaries from Eurostat": NUTS level 0 to 3 and a country (two capital letters, for example AT). This happens only on click; the file may be at most 5 MB.
The conditions for the Eurostat boundaries in plain words:
- The boundaries come from Eurostat (GISCO) and belong to EuroGeographics. Eurostat grants only a non-exclusive and non-transferable right of use for them.
- They may be used only non-commercially, and the source must be named. This also applies when the map is passed on.
- This is why Statable does not ship them. This condition is shown before loading, and it must be confirmed.
- The credit "© EuroGeographics for the administrative boundaries" always appears in the picture and in the export.
- The boundaries are stored only with the map in your own project, not on a server.
What goes onto the network
When you click "Load boundaries from Eurostat", a request goes to the European Commission (gisco-services.ec.europa.eu). Its server sees the IP address and the address of the file. Nothing else goes there; no data from Statable is sent. In the version without a network (offline) there is only your own file. For districts and municipalities Statable supplies no boundaries; open your own GeoJSON file whose terms of use you have checked.
Assignment and missing values
- The code in the data must match the code of the boundaries exactly (capitalization counts, spaces at the edge do not).
- Statable counts codes that are not matched in both directions and gives examples: codes from the data for which there is no area, and areas for which the data have no code.
- An area without a value has its own grey, hatched fill and appears in the legend as "no value". It is never drawn as 0.
- If a code occurs more than once in the data, it is not unique and gets no value.
Trap: what a map easily suggests
- A map shows areas, not people: large areas look more important than they are.
- Absolute numbers do not belong on an area map. Use rates or shares. Statable cannot tell whether the chosen column is a total; that is why this note is always shown.
- The choice of classes changes the picture. A different division shows the same numbers differently.
- Small areas with few cases: the value fluctuates strongly, even if the map shows it calmly.
Requirements and limits
- Only areas are drawn. Statable does not draw points or lines.
- The projection is simple: the longitude is compressed by the cosine of the mean latitude. That is enough for showing, not for measuring areas or distances.
- Texts from the file are shown only as text and never run as a command. An unreadable or too large file is not taken over; Statable says why.
- The colours of the classes can also be told apart in grey scale.
Typical examples
- The unemployment rate per federal state (NUTS level 2).
- A rate per 1,000 inhabitants per region from your own data, with your own GeoJSON file.
For specialists
The Eurostat boundaries are NUTS_RG_60M_2024_4326 (scale 1:60 million, coordinates in EPSG:4326), per level LEVL_0 to LEVL_3; the file is filtered to the chosen country in the browser. With quantiles and many equal values fewer classes than wanted result; Statable says so.