import folium
import pandas as pd
# 예제 데이터 (미국 주별 인구)
= pd.DataFrame({
data 'State': ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California'],
'Population': [4903185, 731545, 7278717, 3017804, 39512223]
})
# GeoJSON 파일 (미국 주 경계 데이터)
= 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data/us-states.json'
geo_json_url
# Folium 지도 생성
= folium.Map(location=[37.8, -96], zoom_start=4)
m
# Choropleth 지도 생성
folium.Choropleth(=geo_json_url, # 경계 데이터
geo_data="choropleth",
name=data, # 데이터 프레임
data=["State", "Population"], # 데이터 프레임에서 사용할 열 지정
columns="feature.properties.name", # GeoJSON의 고유 ID와 데이터 프레임의 키를 매핑
key_on="YlGn", # 색상 팔레트
fill_color# fill_opacity=0.7, # 채우기 불투명도
# line_opacity=0.2, # 경계선 불투명도
="Population by State", # 범례 제목
legend_name
).add_to(m)
# 지도에 레이어 컨트롤 추가
folium.LayerControl().add_to(m)
# 지도 출력
m
Folium의 Choropleth 지도
Folium의 Choropleth 지도
Folium의 Choropleth 지도: 개념과 활용 방법
Folium은 Python에서 지리적 데이터를 시각화하는 데 강력한 도구로, 다양한 지도 시각화 기능을 제공합니다. 그 중 Choropleth 지도는 공간 데이터의 분포를 시각적으로 표현하는데 매우 유용한 도구입니다. 이 글에서는 Folium의 Choropleth 지도가 무엇인지, 어떻게 사용하는지, 그리고 실제 데이터를 사용한 예시와 함께 Choropleth 지도를 활용하는 방법을 소개하겠습니다.
1. Choropleth 지도란?
Choropleth 지도는 지리적 구역을 색상으로 구분하여 데이터를 시각화하는 지도 유형입니다. 이 지도는 각 구역에 할당된 값을 색상 농도로 표현하므로, 지역별 데이터 차이를 직관적으로 파악할 수 있습니다. 예를 들어, 인구 밀도, 경제 지표, 선거 결과 등을 시각화할 때 유용합니다.
2. Choropleth 지도의 사용 목적
Choropleth 지도는 다음과 같은 목적으로 사용됩니다: - 지역별 데이터 비교: 특정 데이터(예: 인구, 소득 등)의 지역별 차이를 쉽게 파악할 수 있습니다. - 패턴 인식: 지리적 데이터의 분포 패턴을 시각적으로 표현하여 지역 간 상관관계나 트렌드를 파악할 수 있습니다. - 데이터 강조: 특정 지역의 값을 강조하여 시각화할 수 있습니다.
3. Folium에서 Choropleth 지도 만들기
Folium에서 Choropleth 지도를 생성하려면 folium.Choropleth
클래스를 사용합니다. 이 클래스는 주로 GeoJSON 형식의 지리 데이터와, 해당 지역에 매핑할 데이터 값을 입력받아 지도를 생성합니다.
3.1 필요한 라이브러리 설치
먼저, Folium을 설치하지 않았다면 아래 명령어로 설치할 수 있습니다.
pip install folium
3.2 Choropleth 지도 생성 예시
아래 예시는 Folium을 사용하여 미국 각 주의 인구 데이터를 Choropleth 지도로 시각화하는 방법을 보여줍니다.
3.3 코드 설명
- geo_data: 지도에 사용할 GeoJSON 형식의 지리 데이터를 지정합니다. 이 예제에서는 미국 주 경계 데이터를 사용했습니다.
- data: 지역별 값을 담고 있는 데이터 프레임입니다. 이 예제에서는 각 주의 인구 데이터를 사용했습니다.
- columns: 데이터 프레임에서 사용할 열을 지정합니다. 첫 번째 열은 지역을 나타내는 열, 두 번째 열은 색상 농도를 결정할 값입니다.
- key_on: GeoJSON 데이터의 고유 ID와 데이터 프레임의 키를 연결합니다.
- fill_color: Choropleth 지도의 색상 팔레트를 지정합니다. 예제에서는
"YlGn"
(Yellow-Green) 팔레트를 사용했습니다. Folium은"YlOrRd"
,"BuGn"
등 다양한 색상 팔레트를 지원합니다. - fill_opacity: 채우기 색상의 불투명도를 설정합니다.
- line_opacity: 경계선의 불투명도를 설정합니다.
- legend_name: 범례에 표시할 제목을 설정합니다.
테스트를 위해서 dataframe에는 Alabama
, Alaska
, Arizona
, California
의 가상의 인구를 생성하였습니다. 해상 주가 아닌 경우 인구값이 없기 때문에 검은색으로 표시됩니다.
4. Choropleth 지도의 색상 팔레트
Folium의 Choropleth 지도에서는 다양한 색상 팔레트를 사용할 수 있습니다. 대표적인 팔레트로는 다음과 같은 것들이 있습니다. - YlGnBu: 노랑에서 초록, 파랑으로 이어지는 팔레트로 데이터의 범위를 자연스럽게 표현합니다. - YlOrRd: 노랑에서 오렌지, 빨강으로 이어지는 팔레트로 데이터의 밀집도를 강조하는 데 유리합니다. - BuPu: 파랑에서 보라색으로 변하는 팔레트로, 데이터의 차이를 명확히 구분할 수 있습니다.
이러한 팔레트를 선택할 때는 시각화하려는 데이터의 특성과 목적에 따라 적절한 색상을 선택하는 것이 중요합니다.
5. Choropleth 지도의 활용 예시
- 인구 분포 분석: 각 지역의 인구 밀도를 시각적으로 표현하여, 인구가 집중된 지역과 그렇지 않은 지역을 비교할 수 있습니다.
- 경제 지표 시각화: 지역별 GDP, 소득 수준, 실업률 등을 시각화하여 경제적 불평등이나 성장 패턴을 분석할 수 있습니다.
- 선거 결과 분석: 각 지역의 선거 결과를 색상으로 구분하여, 정치적 성향이나 변화를 시각적으로 분석할 수 있습니다.
6. Folium Choropleth 지도의 장점
- 직관적인 데이터 표현: Choropleth 지도는 색상을 사용하여 데이터를 시각적으로 표현하기 때문에, 복잡한 데이터를 쉽게 이해할 수 있습니다.
- 대규모 데이터 시각화 가능: 여러 지역에 걸친 데이터를 한눈에 비교할 수 있어, 대규모 지리적 데이터를 분석할 때 유용합니다.
- 동적 시각화 지원: Folium의 인터랙티브 기능 덕분에, 사용자가 지도를 확대/축소하거나 클릭하여 추가 정보를 확인할 수 있습니다.
7. 마무리
Folium의 Choropleth 지도는 지리적 데이터를 효과적으로 시각화할 수 있는 강력한 도구입니다. 이 글에서 소개한 예제와 개념을 바탕으로, 여러분의 데이터 분석 프로젝트에 활용해보세요. Choropleth 지도를 활용하면, 복잡한 지리적 데이터를 시각적으로 직관적이고 강력하게 표현할 수 있습니다.
참고 자료
- Folium GitHub Repository
- Folium Documentation
- ColorBrewer2 - 색상 팔레트 선택 도구