Een choroplethenkaart is de meest voorkomende thematische kaart die je in het nieuws, in beleidsrapporten en op bedrijfsdashboards ziet. Heb je ooit een verkiezingskaart gezien gekleurd op marge, een COVID-kaart gekleurd op besmettingsgraad of een bbp-kaart gekleurd op inkomen, dan heb je een choropleth gelezen.
Deze gids legt uit wat een choroplethenkaart is, wanneer je er een gebruikt, de meest voorkomende fouten, en hoe je een productiewaardige choropleth bouwt met een vector tile API.
De definitie in één zin
Een choroplethenkaart kleurt elke regio op de kaart volgens één numerieke waarde die voor die regio is gemeten, met een kleurschaal die magnitude codeert.
Het woord komt van het Griekse khoros (gebied) en plethos (menigte). Het stamt uit de jaren 1820 van Franse statistici en is sindsdien het werkpaard van de thematische cartografie.
Voorbeelden van choroplethenkaarten
Een paar klassieke toepassingen:
- Bevolkingsdichtheid per land, provincie of postcode
- Verkiezingsuitslagen per district, met kleurintensiteit die de overwinningsmarge toont
- Bbp per hoofd per land, vaak op een logaritmische schaal
- Werkloosheidspercentage per regio
- COVID-besmettingsgraad per 100.000 inwoners per gemeente
- Gemiddelde vastgoedprijs per buurt
- Breedbandgebruik per telgebied
- Gewasopbrengst per landbouwregio
Het verbindende kenmerk is dat de data één getal per vooraf gedefinieerde regio is.
Choroplethenkaart versus heatmap
De twee worden vaak verward. Het verschil doet ertoe.
Een choroplethenkaart heeft vooraf gedefinieerde regio's nodig. De data is al geaggregeerd. Elke regio krijgt één kleur. De grenzen zijn onderdeel van de boodschap.
Een heatmap heeft puntdata nodig. Dichtheid wordt berekend via binning of kernel smoothing. Het resultaat is een continu verloop dat administratieve grenzen negeert. Gebruik het voor het ontdekken van clusters, niet voor regiovergelijking.
Heb je één getal per postcode, gebruik dan een choropleth. Heb je een wolk GPS-pings, gebruik dan een heatmap.
Hoe een choroplethenkaart wordt gebouwd
Drie ingrediënten:
- Grensgeometrie. Een set GeoJSON-polygonen (of vector tile-lagen) voor de regio's die je wilt kleuren, elk met een stabiele identifier (ISO-landcode, US state FIPS, EU NUTS-code, postcode).
- Een datawaarde per regio. Een eenvoudig JSON-object of CSV gekoppeld aan dezelfde identifier.
- Een renderer die beide samenvoegt. Moderne webmapbibliotheken (MapLibre GL, Mapbox GL, deck.gl, OpenLayers) kunnen data tijdens runtime aan grenzen koppelen via een feature-state of property-expressie.
Hier is het conceptuele patroon in MapLibre GL JS:
map.addSource('regions', {
type: 'vector',
url: 'https://api.mapatlas.xyz/v1/tiles/regions.json',
});
map.addLayer({
id: 'regions-fill',
type: 'fill',
source: 'regions',
'source-layer': 'regions',
paint: {
'fill-color': [
'interpolate',
['linear'],
['feature-state', 'value'],
0, '#f7fbff',
50, '#6baed6',
100, '#08306b',
],
'fill-opacity': 0.8,
},
});
// Push your data to each feature at runtime
for (const [regionId, value] of Object.entries(yourData)) {
map.setFeatureState(
{ source: 'regions', sourceLayer: 'regions', id: regionId },
{ value }
);
}
De kaart haalt de grenstegels één keer op en restyled ze terwijl je data verandert. Geen server-side rerendering.
De juiste kleurschaal kiezen
Drie regels:
Sequentieel voor data in één richting. Licht naar donker in één tint. Gebruikt voor grootheden die van laag naar hoog gaan zonder betekenisvol middelpunt (bevolking, inkomen, percentage).
Divergerend voor data in twee richtingen. Een neutraal middelpunt en twee tinten die naar buiten waaieren (rood en blauw, bruin en blauwgroen). Gebruikt wanneer nul of het gemiddelde betekenisvol is en waarden aan weerszijden kunnen vallen (jaar-op-jaar groei, verkiezingsmarge, afwijking van het gemiddelde).
Vermijd regenboogschalen. Ze suggereren een ordening die de menselijke waarneming niet uniform volgt. Ze falen ook voor kleurenblinde kijkers. ColorBrewer (colorbrewer2.org) is de cartograaf-geteste standaard voor choroplethpaletten.
Een veelgemaakte fout is te veel bins gebruiken. Vijf tot zeven is de sweet spot. Meer dan dat en de lezer kan aangrenzende tinten niet onderscheiden.
De classificatievraag
Zodra je een schaal hebt, moet je beslissen waar je de bingrenzen trekt:
- Gelijk interval. Verdeelt het bereik in even brokken. Werkt voor uniform verdeelde data, faalt bij uitschieters.
- Quantiel. Elke bin bevat hetzelfde aantal regio's. Handig wanneer je elke tint zichtbaar wilt hebben, maar het kan de grootte van verschillen verbergen.
- Natural breaks (Jenks). Minimaliseert variantie binnen bins. De meest datagedreven default.
- Handmatig. Wanneer de bingrenzen betekenis dragen (belastingschijven, demografische drempels).
De keuze heeft echte impact op het verhaal dat de kaart vertelt. Vermeld de classificatiemethode in elk serieus rapport.
Veelvoorkomende valkuilen
Oppervlaktebias. Grote, dunbevolkte regio's domineren visueel de kaart. Een choropleth van de Amerikaanse presidentsverkiezingen gekleurd op marge ziet er vooral rood uit omdat plattelandscounties enorm zijn. Cartogrammen of dot-density maps lossen dit op.
Ruwe aantallen in plaats van percentages. Een kaart van "COVID-gevallen per staat" is grotendeels een kaart van de bevolking. Normaliseer altijd op bevolking, oppervlakte of een andere noemer, tenzij het absolute aantal precies is wat je wilt tonen.
Misleidende schaal. Quantielschalen maken elke kaart interessant ook als de onderliggende spreiding klein is. Gelijk-intervalschalen maken elke kaart vlak wanneer er uitschieters zijn. Stem de classificatie af op de vraag.
Ontbrekende data. Beslis vooraf of een regio zonder data grijs wordt getoond, weggelaten of dezelfde kleur als nul krijgt. Elke keuze verandert de leeswijze.
Wanneer een ander grafiektype kiezen
Als je data multivariaat per regio is, vlakt een choropleth het uit. Overweeg:
- Small multiples. Een raster van choroplethkaarten, één per variabele.
- Bivariate choropleth. Twee variabelen gecodeerd in een 2D-kleurraster. Lastig te lezen maar krachtig wanneer het werkt.
- Cartogram. Vervormt regiogrootte op basis van de waarde, handig wanneer oppervlaktebias domineert.
- Staafdiagram op een kaart. Soms is de data gewoon een tabel; de kaart is decoratie.
Cartografie is communicatie. De choropleth is één tool onder vele.
Waar MapAtlas past
De Dynamic Maps API levert vector tile-bronnen voor land-, regio- en postcodegrenzen die je tijdens runtime kunt stylen met je eigen data, precies zoals in het MapLibre-snippet hierboven. De grenzen worden in de EU gehost, zijn versie-gestempeld en ontworpen om netjes te joinen met de standaardidentifiers (ISO 3166, NUTS, nationale postcodesystemen).
Voor pagina's die geaggregeerde stats per regio moeten tonen (vastgoedprijs per postcode, bezorgkosten per regio, omzet per territorium) levert de GeoEnrich API de waarden per regio gekoppeld aan dezelfde grens-IDs, dus dezelfde join werkt voor zowel de kaart als je tabellen. De volledige thematische-kaartachtergrond staat in de Thematic Map Guide.
Veelgestelde vragen
Wat is een choroplethenkaart?
Een choroplethenkaart is een thematische kaart waarin geografische regio's (landen, provincies, postcodes, telgebieden) gekleurd worden in verhouding tot een statistische variabele die per regio is gemeten. De kleurintensiteit codeert de waarde, dus een donkere tint betekent doorgaans een hogere waarde en een lichte tint een lagere. Choroplethenkaarten zijn de standaardmanier om bevolkingsdichtheid, verkiezingsuitslagen, bbp per hoofd, werkloosheidscijfers en elke andere grootheid die van nature per administratieve grens wordt geaggregeerd, te visualiseren.
Wat is het verschil tussen een choroplethenkaart en een heatmap?
Een choroplethenkaart kleurt vooraf gedefinieerde regio's (landen, postcodes, districten) op basis van een geaggregeerde waarde per regio. Een heatmap toont de intensiteit van puntdata continu in de ruimte, zonder rekening te houden met administratieve grenzen. Gebruik een choropleth wanneer je data al per regio geaggregeerd is (bijvoorbeeld stemmen per provincie, omzet per postcode). Gebruik een heatmap wanneer je een puntenwolk hebt en wilt zien waar die clustert (criminele incidenten, klantpins, sensormetingen).
Wanneer gebruik ik een choroplethenkaart?
Gebruik een choroplethenkaart wanneer je data één numerieke waarde per regio is en de regio's ongeveer vergelijkbaar zijn qua oppervlakte of je kunt normaliseren op oppervlakte of bevolking. Goede voorbeelden: percentage huishoudens met breedband per gemeente, COVID-besmettingen per 100k inwoners per regio, gemiddelde huur per postcode. Vermijd choropleth wanneer regio's enorm verschillen in oppervlakte (grote landelijke regio's domineren visueel ook al wonen er minder mensen) of wanneer je meerdere variabelen per regio hebt (gebruik dan small multiples of een ander type grafiek).
Hoe bouw ik een choroplethenkaart?
Je hebt drie dingen nodig: grensgeometrie voor je regio's (GeoJSON-polygonen), een datawaarde per regio gekoppeld aan een stabiele ID, en een renderer die beide samenvoegt en een kleurschaal toepast. Veelgebruikte stacks: MapLibre GL of Mapbox GL met een fill-color expressie, deck.gl GeoJsonLayer met getFillColor, D3.js met d3-geo voor statische SVG, of een gehoste dynamische kaart-API. De MapAtlas Dynamic Maps API levert grenstegels voor landen, regio's en postcodes die je tijdens runtime kunt stylen met je eigen data.
Wat is een goede kleurschaal voor een choroplethenkaart?
Gebruik een sequentiële schaal met één tint (bijvoorbeeld lichtblauw naar donkerblauw) wanneer de data één grootheid is met een natuurlijk nulpunt. Gebruik een divergerende schaal met twee tinten (rood naar wit naar blauw) wanneer waarden divergeren rond een betekenisvol middelpunt (verkiezingsmarge, jaar-op-jaar verandering). Vermijd regenboogschalen: ze suggereren een ordening die mensen niet uniform waarnemen en ze falen voor kleurenblinde gebruikers. ColorBrewer is de standaardreferentie voor cartograaf-geteste paletten.

