728x90
반응형
단계구분도(Choropleth map)
각기 다른 음영이나 색상 또는 값으로 각 지역과 관련된 데이터를 표현한 지도
지도 데이터 파일 (.geojson) - 지역에 대한 경계 정보를 제공
시각화 하고자 하는 데이터 파일 (.csv 등) - 지역별로 표현하고자 하는 데이터를 제공
Choropleth와 같은 레이어를 만들 때 위의 이 두 데이터를 파라미터로 넘겨줘야 하는데 데이터는 각자 다른 파일에 있으므로, 시각화할 데이터를 지도에 얹으려면 두 데이터를 매핑해야 한다.
folium.Choropleth()
geo_data = "지도 데이터 파일 경로 (.geojson, geopandas.DataFrame)"
data = "시각화 하고자 하는 데이터파일. (pandas.DataFrame)"
columns = (지도 데이터와 매핑할 데이터, 시각화 하고려는 데이터),
key_on = "지도 데이터 파일에서 데이터 파일과 매핑할 값 feature.properties.xxx",
fill_color = "시각화에 쓰일 색상",[fill_opacity=면색 투명도(0~1), line_opacity=선색 투명도(0~1),]
legend_name = "칼라 범주 이름",
threshold_scale = list, 구역별 색을 나눠줄 값
import folium
import json
import pandas as pd
url = (
"https://raw.githubusercontent.com/python-visualization/folium/master/examples/data"
)
state_geo = f"{url}/us-states.json" # 미국 각 주의 경계 데이터
state_unemployment = f"{url}/US_Unemployment_Oct2012.csv" # 실업률 데이터
state_data = pd.read_csv(state_unemployment) # pandas.DataFrame으로 만들기
m = folium.Map(location=[48, -102], zoom_start=3)
folium.Choropleth(
geo_data=state_geo,
name="choropleth",
data=state_data,
columns=["State", "Unemployment"],
key_on="feature.id",
fill_color="YlGn",
fill_opacity=0.7,
line_opacity=0.2,
legend_name="Unemployment Rate (%)",
).add_to(m)
folium.LayerControl().add_to(m)
# 레이어 컨트롤을 추가하면 오른쪽 컬럼범주 아래 레이어 아이콘을 통해 구역표시를 없애거나 다시 나타낼 수 있다.
display(m)
툴팁 기능 추가
# ~ 생략 ~
m = folium.Map(location=[48, -102], zoom_start=3)
# 변수에 저장해 주어야 한다.
fmap = folium.Choropleth(
geo_data=state_geo,
name="choropleth",
data=state_data,
columns=["State", "Unemployment"],
key_on="feature.id",
fill_color="YlGn",
fill_opacity=0.7,
line_opacity=0.2,
legend_name="Unemployment Rate (%)",
).add_to(m)
# 툴팁처리 추가
fmap.geojson.zoom_on_click = False
fmap.geojson.add_child(
folium.features.GeoJsonTooltip(['name'],labels=False) # Tooltip
)
# 출력은 Map 객체로
display(m)
팝업 기능 추가
# ~ 생략 ~
m = folium.Map(location=[48, -102], zoom_start=3)
fmap = folium.Choropleth(
geo_data=state_geo,
name="choropleth",
data=state_data,
columns=["State", "Unemployment"],
key_on="feature.id",
fill_color="YlGn",
fill_opacity=0.7,
line_opacity=0.2,
legend_name="Unemployment Rate (%)",
).add_to(m)
# 팝업처리 추가
fmap.geojson.zoom_on_click = False
fmap.geojson.add_child(
folium.features.GeoJsonPopup(['name'],labels=False) # Popup
)
display(m)
728x90
반응형
'Python 파이썬 > Folium' 카테고리의 다른 글
Folium ) 지도에 다양한 마커 표시하기 (0) | 2022.04.01 |
---|---|
Folium ) 지도 만들기 (0) | 2022.03.31 |
Folium ) 소개 (0) | 2022.03.31 |
댓글