설명 / Description
코로플레스 맵은 국가, 주(州), 카운티, 인구조사 구역 등 미리 정의된 지리적 영역에 걸쳐 데이터 변수를 색상의 명도나 색조로 인코딩하는 지도입니다. 각 영역은 순차, 발산, 또는 범주형 색상 스케일에서 뽑은 색으로 채워지며, 이를 통해 독자는 공간적 패턴, 군집, 이상치를 한눈에 파악할 수 있습니다. 지리적 경계가 시각적 뼈대 역할을 하고, 색상 채우기가 정량적 또는 범주적 정보를 담습니다.
A choropleth map uses color intensity or hue to encode a data variable across predefined geographic regions such as countries, states, counties, or census tracts. Each region is filled with a color drawn from a sequential, diverging, or categorical color scale, allowing readers to identify spatial patterns, clusters, and outliers at a glance. The geographic boundaries serve as the visual scaffold, and the color fill carries the quantitative or categorical information.
코로플레스 맵은 독자가 이미 가진 지리적 심상 모델을 활용하기 때문에 가장 널리 알려진 데이터 시각화 형태 중 하나입니다. 사람들은 자국의 지도를 보는 순간 즉시 방향을 잡고 데이터가 전하는 이야기에 집중할 수 있습니다. 이러한 친숙함은 큰 강점이지만, 잘 알려진 함정도 함께 가져옵니다: 면적이 큰 영역은 데이터상의 중요도와 무관하게 시각적 주의를 지배하게 되고, 인구나 밀도가 지역마다 크게 다를 때 해석을 오도할 수 있습니다.
Choropleths are among the most widely recognized data visualizations because they leverage the reader's existing geographic mental model. When someone sees a map of their country, they instantly orient themselves and can focus on the data story. This familiarity is a major strength, but it also introduces a well-known pitfall: larger regions dominate visual attention regardless of their data importance, which can mislead interpretation when population or density varies dramatically across regions.
코로플레스 맵의 효과는 색상 스케일과 분류 방법의 선택에 크게 좌우됩니다. 등간격, 분위수, 자연 분류(Jenks), 비분류(unclassed) 방식은 같은 데이터라도 서로 다른 시각적 인상을 만들어냅니다. 이러한 파라미터를 신중하게 선택하는 것 -- 그리고 명확한 범례를 함께 제공하는 것 -- 은 정직하고 효과적인 커뮤니케이션에 필수적입니다.
The effectiveness of a choropleth depends heavily on the choice of color scale and classification method. Equal-interval, quantile, natural breaks (Jenks), and unclassed schemes each produce different visual impressions of the same data. Thoughtful selection of these parameters -- along with a clear legend -- is essential for honest and effective communication.
언제 사용하나 / When to Use
- 지리적 영역에 걸쳐 변수(예: 소득, 선거 결과, 감염률)가 어떻게 달라지는지 보여줄 때
- Showing how a variable (e.g., income, election results, infection rate) varies across geographic regions
- 지역 간 비율이나 정규화된 값(1인당 수치, 백분율)을 비교할 때
- Comparing rates or normalized values (per capita, percentages) across areas
- 데이터의 지역적 군집, 그라디언트, 공간적 자기상관을 드러낼 때
- Revealing regional clusters, gradients, or spatial autocorrelation in data
- 비공간적 차트에서는 사라질 지리적 맥락을 제공할 때
- Providing geographic context that would be lost in a non-spatial chart
이럴 땐 피하세요 / When NOT to Use
- 비율이 아닌 원자료 건수를 표시할 때 -- 면적이 큰 영역이 인위적으로 중요해 보이게 됩니다. 데이터를 먼저 정규화하거나 지도 위에 버블 차트를 사용하십시오
- When displaying raw counts rather than rates -- large regions will appear artificially important; normalize the data first or use a bubble chart on a map
- 영역의 크기가 극단적으로 다를 때(예: 러시아 vs. 룩셈부르크) -- 대신 카토그램이나 타일 그리드 맵을 고려하십시오
- When regions vary enormously in size (e.g., Russia vs. Luxembourg) -- consider a cartogram or tile grid map instead
- 정확한 값 비교가 필요할 때 -- 색상 구분은 정밀하지 않으므로, 막대 차트나 툴팁과 함께 사용하십시오
- When precise value comparison is needed -- color discrimination is imprecise; pair with a bar chart or tooltip
- 데이터에 의미 있는 지리적 차원이 없을 때 -- 히트맵이나 막대 차트가 더 명확합니다
- When the data has no meaningful geographic dimension -- a heatmap or bar chart would be clearer
- 영역 집계가 아닌 포인트 단위 데이터를 가지고 있을 때 -- 점 밀도 지도나 지도 위 산점도를 사용하십시오
- When you have point-level data rather than area aggregates -- use a dot density map or scatterplot on map
구조 / Anatomy
- 지리적 경계: 국가, 주, 우편번호 구역 등 영역을 나타내는 폴리곤으로, 보통 GeoJSON이나 TopoJSON에서 가져옵니다
- Geographic boundaries: Polygons representing regions (countries, states, zip codes), typically sourced from GeoJSON or TopoJSON
- 색상 채우기: 각 폴리곤은 색상 스케일을 이용해 데이터 값에 따라 채워집니다
- Color fill: Each polygon is filled according to the data value using a color scale
- 색상 스케일 / 범례: 값에서 색상으로의 매핑을 보여주는 연속 그라디언트 또는 이산 구간
- Color scale / legend: A continuous gradient or discrete bins showing the mapping from value to color
- 경계선: 영역을 구분하는 가는 선으로, 채우기 색과 경쟁하지 않도록 은은하게 유지합니다
- Boundary strokes: Thin lines separating regions, kept subtle so they don't compete with the fill color
- 레이블 또는 툴팁: 지역 이름과 정확한 값으로, 보통 호버 시 표시됩니다
- Labels or tooltips: Region names and exact values, usually shown on hover
변형 / Variations
- 분류형(classed) 코로플레스: 데이터를 이산적인 등급(예: 5단계 색상)으로 구간화하여 해석을 단순화하지만 세부 뉘앙스를 잃습니다
- Classed choropleth: Data is binned into discrete classes (e.g., 5 color steps), simplifying interpretation but losing nuance
- 비분류형(unclassed) 코로플레스: 구간화 없이 연속적인 색상 그라디언트를 사용하여 세부 정보를 보존하지만 비교는 더 어려워집니다
- Unclassed choropleth: A continuous color gradient with no binning, preserving detail but making comparison harder
- 이변량 코로플레스: 2차원 색상 매트릭스를 이용해 두 변수(예: 소득과 교육 수준)를 동시에 인코딩합니다
- Bivariate choropleth: Two variables are encoded simultaneously using a 2D color matrix (e.g., income and education)
- 카토그램 하이브리드: 영역의 면적을 왜곡해 두 번째 변수(예: 인구)를 나타낸 뒤, 코로플레스 색상으로 채웁니다
- Cartogram hybrid: Region areas are distorted to represent a second variable (e.g., population), then filled with choropleth color
코드 레퍼런스 / Code Reference
// Observable Plot choropleth with TopoJSON
import * as Plot from "@observablehq/plot";
import {feature} from "topojson-client";
const states = feature(us, us.objects.states);
Plot.plot({
projection: "albers-usa",
color: {scheme: "YlGnBu", legend: true, label: "Unemployment rate (%)"},
marks: [
Plot.geo(states, {
fill: d => dataMap.get(d.id),
stroke: "white",
strokeWidth: 0.5,
title: d => `${d.properties.name}: ${dataMap.get(d.id)}%`
})
]
})