Cartogram 시각화

DHL
9 min readOct 26, 2022

--

GIS SI 위주일 때에는 보기만 하다가, 데이터 분석에서 지도 시각화를 하면서 Cartogram(카토그램)에 대해 다룰 수 있는 기회가 생기게 됩니다.

몇 년전에 구두발표하고, 참관만 하다가 그나마도 코로나로 한동안 참관도 못했었는데 FOSS4G Korea 2022 행사 모집 글을 보고 Cartogram 주제로 신청했다가 덜컥 구두발표 참여하게 되어서 부랴부랴 정리해 봅니다.

카토그램이란?

카토그램 구글링시 상단에 나오는 위키피디아에 따르면, 카토그램은 “의석 수나, 선거인단 수, 인구 등의 특정 데이터 값의 변화에 따라 지도의 면적이 왜곡되는 그림” 으로, ‘변량비례도’ , ‘왜상통계지도’라고도 부른다고 합니다.

Cartogram이라는 단어가 지도(Cartography)와 도형(Diagram)을 합친 것이므로 이렇게 쉽게 생각하면 될 것 같습니다.

다양한 카토그램

카토그램 사례들을 찾아보면 다양한 형태를 볼 수 있습니다. 정의 및 유형화가 잘 정리되어 있는 GISGEOGRAPHY, WIKIPEDIA, UCGIS 3곳을 종합해보면 다음과 같은 4가지로 묶어볼 수 있을 것 같습니다.

4가지 카토그램 유형

이제, 유형별 카토그램을 하나씩 살펴보겠습니다.

1. Density-Equalizing Cartogram

집계구, 행정읍면동, 시군구 행정구역은 모두 ‘인구’에 따라 나눈 인공적인 구역으로, 인구가 밀집한 곳은 구역이 작고, 그렇지 못한 곳은 구역이 큽니다.

좀 더 정확한 표현을 위해 ‘인구밀도’로 환산하여 표현하기도 하지만 인구가 많은 곳의 구역이 작아 오히려 눈에 잘 안보이는 문제가 있습니다.

이런 문제를 극복할 수 있는 기법이 바로 Density-Equalizing Cartogram 또는 (Shape-warping) contiguous cartogram이라고 부르는 카토그램입니다.

지리학의 제1법칙 등으로 유명한 지리학자인 Tobler라는 분이 1970년 초에 제안한 카토그램 중 가장 맏형으로서 양적 속성에 따라 구역의 크기를 표현하는 방식입니다.

만드는 방법은 QGIS에서 cartgram3라는 플러그인을 설치하면 됩니다. 유병혁님의 블로그에 자세히 나와있어서 참조하면 쉽게 만들 수 있습니다.

QGIS에서 cartogram3를 이용하여 Density-Equalizing Cartogram 만들기

만들어보니 전국 행정구역의 경우, 섬을 최소화하고, 경계선의 형상을 미리 단순화(Simplify/ Generalization) 해주는 게 좋을 것 같습니다.

2. Non-Contiguous Cartogram

이 카토그램은 Contiguous Cartogram과 반대로 구역의 경계선들이 서로 떨어뜨리는 대신에 구역의 형상을 유지하는 데 특징이 있습니다.

Python에서 Geoplot이라는 지도 시각화 패키지를 이용하면 쉽게 만들 수 있습니다.

Geoplot을 이용해 만든 Non-Contiguous Cartogram

QGIS에서도 중심점과 행정구역 심볼을 이용하여 비슷하게 만들어볼 수 있는데, 손이 좀 많이 들어가네요…

3. Dorling Cartogram

처음 제안한 분의 이름을 따서 Dorling Cartogram이라고도 부르고, 원이나 사각형 도형으로 시각화하기 때문에 Graphical cartogram, Diagrammatic cartogram 등으로도 부르는 것 같습니다.

공간 통계, 공간 모델링 등에 많이 쓰이는 오픈소스 GIS SW인 GeoDa에서 만들 수 있습니다. GeoDa를 이용한 카토그램 생성방법은 여기를 참조하시면 됩니다.

GeoDa를 이용한 Dorling Cartogram 생성

만들어보니 원래의 위치를 직관적으로 파악하기 어려울 수 있고, Labeling도 되지 않아 이해가 더 어려울 수도 있을 것 같습니다. 이미지로 저장하여 이미지 편집툴이나 파워포인트 등에서 명칭과 수치를 추가적으로 표시해줄 필요가 있을 것 같습니다.

4. Mosaic Cartogram

Mosaic Cartogram 또는 Gridded Cartogram은 각 구역을 동일한 크기의 사각/육각형으로 표현하는 기법입니다.

아래 예시인 선거구 지도가 대표적으로 적용되는 기법이지만, 행정읍면동, 시군구 등 다른 구역에도 면적이 작은 구역이 있어서 시각화에 어려움을 겪는다면 충분히 사용해볼 수 있는 기법입니다.

파이썬으로 데이터 주무르기”에 잘 설명되어 있고, 좀 더 최근의 “21대 국회의원 선거 분석”도 있지만 선거관리위원회 크롤링 등 소스코드가 방대하고 복잡해서 저 같은 아저씨 코더에게는 좀 어렵습니다.

파이썬으로 데이터 주무르기”, 민형기 저, 19대 대선결과 분석
형상 시트와 값 시트를 가진 엑셀로 그리드 카토그램 생성

그래서, 위의 코드를 참조하여 구역 형상 시트와 값 시트로 구성된 엑셀 데이터만 있으면 그리드 카토그램을 만들 수 있는 파이썬 코드를 깃헙에 공유하니 필요하신 분은 참조하시면 되겠습니다.

Mosaic cartogra의 단점은 지리적 위치나 모양이 무시된다는 점입니다. 관련하여 공유한 코드도 shp 등 공간데이터나 공간 처리용 패키지를 필요로 하지 않습니다.

유형별 카토그램 비교

앞서 살펴본 4가지 유형별 특징과 장단점을 간략하게 정리해 봅니다.

카토그램 유형별 비교

용도에 맞는 카토그램 선택

행정구역 경계 등 기존의 표현 방식으로는 어렵기 때문에 카토그램을 선택한 이유가 있을 것입니다. 모든 것에 만능인 카토그램은 없기 때문에 아래를 참조하여 목적/용도에 맞는 카토그램을 선택하는 게 중요할 것입니다.

용도별 카토그램

좋은 활용사례

아래 영국 선거지도에서 지리적 경계, 선거구 Mosaic Cartogram 및 인구 분포 Density-Equalizing Cartogram을 동시에 보여주듯이 지리 경계와 카토그램을 비교해서 볼 수 있게 해주는 게 보는 사람의 이해를 돕는데 좋은 방법이라 생각됩니다.

영국 2019년 선거 지도

이상으로 카토그램에 대해 살펴봤습니다.

다양한 지리적 현상, 통계 및 분석결과 등을 가장 적합하고 쉽게 설명하고자 시계열 지도, 3D 지도 시각화 등 다양한 공간 시각화 기법이 나오고 있는데 카토그램도 그 중 하나로 볼 수 있을 것 같습니다.

또한, Density-Equalizing Cartogram, Mosaic Cartogram 등은 생성 결과를 shp으로 저장하여 Tableau등 공간데이터를 지원하는 BI 툴에서도 활용할 수 있을 것 같습니다.

참조

https://www.viewsoftheworld.net/wp-content/uploads/2019/12/UKelection2019_ElectionMap.png

--

--