Peta choropleth adalah peta tematik paling umum yang akan Anda lihat di berita, laporan kebijakan, dan dashboard perusahaan. Jika Anda pernah melihat peta pemilu yang diwarnai berdasarkan margin, peta COVID berdasarkan tingkat kasus, atau peta GDP berdasarkan pendapatan, Anda sudah membaca peta choropleth.
Panduan ini menjelaskan apa itu peta choropleth, kapan menggunakannya, kesalahan paling umum, dan cara membangun peta choropleth production-ready dengan vector tile API.
Definisi Satu Kalimat
Peta choropleth mewarnai tiap wilayah peta berdasarkan satu nilai numerik yang diukur untuk wilayah tersebut, menggunakan skala warna yang menyandikan magnitude.
Kata ini berasal dari bahasa Yunani khoros (area) dan plethos (banyak). Berasal dari ahli statistik Prancis pada tahun 1820-an dan sejak itu menjadi tulang punggung kartografi tematik.
Contoh Peta Choropleth
Beberapa penggunaan klasik:
- Kepadatan penduduk per negara, provinsi, atau kode pos
- Hasil pemilu per distrik, dengan intensitas warna menunjukkan margin kemenangan
- GDP per kapita per negara, sering dengan skala logaritmik
- Tingkat pengangguran per wilayah
- Tingkat kasus COVID per 100.000 penduduk per kabupaten
- Harga properti rata-rata per lingkungan
- Adopsi broadband per area sensus
- Hasil panen per wilayah pertanian
Ciri pemersatu adalah datanya berupa satu angka per wilayah yang telah ditentukan sebelumnya.
Peta Choropleth vs Heat Map
Keduanya sering dicampuradukkan. Perbedaannya penting.
Peta choropleth butuh wilayah yang sudah ditentukan. Datanya sudah diaggregasi. Tiap wilayah mendapat satu warna. Batas-batas adalah bagian dari pesan.
Heat map butuh data titik. Kepadatan dihitung dengan binning atau kernel smoothing. Output-nya gradient kontinu yang mengabaikan batas administratif. Gunakan untuk penemuan cluster, bukan untuk perbandingan wilayah.
Jika Anda punya satu angka per kode pos, gunakan choropleth. Jika Anda punya kumpulan ping GPS, gunakan heat map.
Cara Peta Choropleth Dibangun
Tiga bahan:
- Geometri batas. Sekumpulan polygon GeoJSON (atau lapisan vector tile) untuk wilayah yang ingin Anda warnai, masing-masing dengan identifier stabil (misalnya kode negara ISO, FIPS negara bagian US, kode NUTS EU, kode pos).
- Satu nilai data per wilayah. Object JSON atau CSV sederhana yang di-key dengan identifier yang sama.
- Renderer yang menggabungkan keduanya. Library web mapping modern (MapLibre GL, Mapbox GL, deck.gl, OpenLayers) dapat menggabungkan data ke batas-batas saat runtime menggunakan feature-state atau property expression.
Berikut pattern konseptual di 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 }
);
}
Peta mengambil tile batas sekali dan me-restyle-nya saat data Anda berubah. Tanpa re-rendering di sisi server.
Memilih Skala Warna yang Tepat
Tiga aturan:
Sequential untuk data satu arah. Terang ke gelap dalam satu hue. Digunakan untuk kuantitas yang berkisar dari rendah ke tinggi tanpa titik tengah yang bermakna (populasi, pendapatan, tingkat).
Diverging untuk data dua arah. Titik tengah netral dengan dua hue menyebar ke luar (merah dan biru, coklat dan teal). Digunakan ketika nol atau rata-rata bermakna dan nilai-nilai bisa berada di kedua sisi (pertumbuhan year-over-year, margin pemilu, deviasi dari mean).
Hindari skala rainbow. Mereka menyiratkan urutan yang tidak cocok dengan persepsi manusia secara seragam. Mereka juga gagal untuk penonton buta warna. ColorBrewer (colorbrewer2.org) adalah standar yang teruji kartografer untuk palette choropleth.
Kesalahan umum adalah menggunakan terlalu banyak bin. Lima sampai tujuh adalah titik manis. Lebih dari itu, pembaca tidak bisa membedakan shade yang bersebelahan.
Pertanyaan Klasifikasi
Setelah Anda punya skala, Anda harus memutuskan di mana menarik batas bin:
- Equal interval. Membagi range ke potongan-potongan yang sama. Bekerja untuk data terdistribusi seragam, gagal ketika ada outlier.
- Quantile. Tiap bin menampung jumlah wilayah yang sama. Berguna ketika Anda ingin semua shade terlihat, tapi bisa menyembunyikan magnitude perbedaan.
- Natural breaks (Jenks). Meminimalkan variance dalam bin. Default paling data-driven.
- Manual. Ketika batas bin membawa makna (misalnya tax bracket, threshold demografis).
Pilihan ini berpengaruh nyata pada cerita yang dituturkan peta. Publikasikan metode klasifikasi dalam laporan serius mana pun.
Jebakan Umum
Area bias. Wilayah besar dengan kepadatan rendah mendominasi peta secara visual. Choropleth hasil pemilu presiden US yang diwarnai berdasarkan margin akan terlihat sebagian besar merah karena kabupaten pedesaan sangat luas. Cartogram atau peta dot-density memperbaiki ini.
Hitungan mentah, bukan rate. Peta "kasus COVID per provinsi" sebagian besar adalah peta populasi. Selalu normalisasi berdasarkan populasi, area, atau denominator lain kecuali jumlah absolut yang ingin Anda sampaikan.
Skala menyesatkan. Skala quantile membuat tiap peta terlihat menarik bahkan ketika spread sebenarnya kecil. Skala equal-interval membuat tiap peta terlihat datar ketika ada outlier. Cocokkan klasifikasi dengan pertanyaan.
Data hilang. Putuskan di awal apakah wilayah tanpa data ditampilkan abu-abu, dihilangkan, atau diwarnai sama dengan nol. Tiap pilihan mengubah pembacaan.
Kapan Memilih Chart Berbeda
Jika data Anda multivariate per wilayah, choropleth akan meratakannya. Pertimbangkan:
- Small multiples. Grid peta choropleth, satu per variabel.
- Bivariate choropleth. Dua variabel di-encode sebagai grid warna 2D. Sulit dibaca tapi kuat ketika berhasil.
- Cartogram. Mendistorsi ukuran wilayah berdasarkan nilai, berguna ketika area bias mendominasi.
- Bar chart di peta. Kadang datanya hanya table; peta adalah dekorasi.
Kartografi adalah komunikasi. Choropleth adalah satu tool di antara banyak.
Posisi MapAtlas
Dynamic Maps API menyediakan sumber vector tile untuk batas negara, wilayah, dan kode pos yang bisa Anda style saat runtime dengan data Anda sendiri, persis seperti di snippet MapLibre di atas. Batas-batas di-host di EU, ditandai versi, dan dirancang untuk join secara bersih terhadap identifier standar (ISO 3166, NUTS, sistem kode pos nasional).
Untuk halaman yang perlu menampilkan stats aggregat per wilayah (harga real estate per kode pos, biaya delivery per wilayah, penjualan per teritori) GeoEnrich API mengembalikan nilai per-wilayah yang di-key ke ID batas yang sama, jadi join yang sama bekerja untuk peta dan table Anda. Latar belakang thematic-map lengkap dibahas di Thematic Map Guide.
Pertanyaan yang Sering Diajukan
Apa itu peta choropleth?
Peta choropleth adalah peta tematik yang mewarnai wilayah geografis (negara, provinsi, kode pos, sensus) sebanding dengan variabel statistik yang diukur untuk tiap wilayah. Intensitas warna menyandikan nilai, jadi warna lebih gelap biasanya berarti nilai lebih tinggi dan warna lebih terang berarti lebih rendah. Peta choropleth adalah cara standar untuk memvisualisasikan kepadatan penduduk, hasil pemilu, GDP per kapita, tingkat pengangguran, dan kuantitas lain yang secara alami diaggregasi berdasarkan batas administratif.
Apa perbedaan peta choropleth dan heat map?
Peta choropleth mewarnai wilayah yang sudah ditentukan sebelumnya (negara, kode pos, distrik) berdasarkan nilai aggregat untuk tiap wilayah. Heat map menunjukkan intensitas data titik secara kontinu di ruang, tanpa mengikuti batas administratif. Gunakan choropleth ketika data Anda sudah diaggregasi per wilayah (misalnya suara per provinsi, penjualan per kode pos). Gunakan heat map ketika data Anda berupa kumpulan titik dan Anda ingin melihat di mana mereka berkumpul (misalnya insiden kejahatan, pin pelanggan, pembacaan sensor).
Kapan saya harus menggunakan peta choropleth?
Gunakan peta choropleth ketika data Anda adalah satu nilai numerik per wilayah dan wilayah-wilayah tersebut kira-kira sebanding ukurannya atau Anda bisa menormalisasi berdasarkan luas atau populasi. Contoh bagus: persentase rumah tangga dengan broadband per kabupaten, kasus COVID per 100k orang per wilayah, sewa rata-rata per kode pos. Hindari choropleth ketika ukuran wilayah sangat bervariasi (wilayah pedesaan besar akan mendominasi secara visual meskipun penduduknya sedikit), atau ketika Anda punya banyak variabel per wilayah (gunakan small multiples atau jenis chart lain).
Bagaimana cara membuat peta choropleth?
Anda butuh tiga hal: geometri batas wilayah (polygon GeoJSON), nilai data per wilayah yang di-key dengan ID stabil, dan renderer yang menggabungkan keduanya dan menerapkan skala warna. Stack umum: MapLibre GL atau Mapbox GL dengan fill-color expression, deck.gl GeoJsonLayer dengan getFillColor, D3.js dengan d3-geo untuk SVG statis, atau hosted dynamic map API. MapAtlas Dynamic Maps API menyediakan tile batas untuk negara, wilayah, dan kode pos yang bisa Anda style saat runtime dengan data Anda sendiri.
Skala warna apa yang baik untuk peta choropleth?
Gunakan skala sequential satu hue (misalnya biru muda ke biru tua) ketika data adalah kuantitas tunggal dengan nol alami. Gunakan skala diverging dua hue (misalnya merah ke putih ke biru) ketika nilai-nilai diverge di sekitar titik tengah yang bermakna (margin pemilu, perubahan year-over-year). Hindari skala rainbow: mereka menyiratkan urutan yang tidak dipersepsikan manusia secara seragam dan gagal untuk pengguna buta warna. ColorBrewer adalah referensi standar untuk palette yang sudah teruji oleh kartografer.

