folium
folum은 파이썬 라이브러리로 지도 데이터를 시각화하는데 아주 쉽게 도와줍니다
leaflet.js를 기반으로 만들어졌습니다. 지도에 마커를 표현하거나 범위를 나타내는 다양한 도형을 입력할 수 있습니다.
conda에 folium 설치하기
아나콘다 프롬프트를 켜고 다음의 명령을 입력합니다.
- conda install -c conda-forge foloium
folium 간단한 예제
우리가 현재 위치한 곳의 위도와 경도 정보입니다.
위도와 경도 각각을 latitude, longitude에 저장해봅시다.
# 플레이데이터 독산 위도, 경도
latitude, longitude = (37.468251, 126.886212)
해당 위도, 경도 정보를 바탕으로 지도에 표시해봅시다.
또 Marker를 달아 위치에 대한 정보에 '플레이데이터'라고 표기해봅시다.
m = folium.Map(location = [latitude, longitude],
zoom_start = 17,
width = 750,
height = 500
)
folium.Marker([latitude, longitude],
popup = '플레이데이터',
tooltip = '플레이데이터',).add_to(m)
m
위도 경도 검색하기
StackOverflow Annual Developer Survey 데이터로 시각화하기
choropleth는 데이터를 담고 있는 Pandas DataFrame/Series와 기하학 데이터를 담는 Geo/TopoJson을 바인딩하여 쉽게 시각화 표현할 수있도록 돕습니다.
import pandas as pd
import folium
survey_raw_df = pd.read_csv('C:/python/data/survey_results_public.csv', index_col = 'ResponseId')
countries_geojson = 'https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json' # 지역 폴리곤 표현 데이터(json)
m = folium.Map(location = [30,0], zoom_start = 2)
folium.Choropleth(
geo_data = countries_geojson,
data = country_counts_df,
columns = ['Country', 'Count'],
key_on = "feature.properties.name", # JSON안에 얘를 기준으로 columns에 담은 값과 mapping하겠다.
threshold_scale = [1, 30, 100, 300, 1_000, 3_000, 10_000, 14_000], # 색상에 대한 bins
fill_color = "YlGn", # 컬러테마
fill_opacity = 0.7, # 색상투명도
line_opacity = 0.2, # 줄 투명도
legend_name = "Respondents", # 범례이름
).add_to(m)
folium.LayerControl().add_to(m)
지도 결과 저장하기
해당 객체에 save() 메서드를 사용하면 저장할 수 있습니다.
m.save("Country.html")
해당 파일을 열면 우리가 실행 결과로 얻었던 지도의 모습을 웹 브라우저를 통해 확인할 수 있습니다.
이 html은 플라스크, 장고 등으로 웹서버에 업로드 할 수 있습니다.
서울시 행정구역에 대한 geojson
seoul_geojson="https://raw.githubusercontent.com/southkorea/seoul-maps/master/kostat/2013/json/seoul_municipalities_geo_simple.json"
m = folium.Map(
location=[37.57, 126.99],
zoom_start=11,
)
folium.Choropleth(
geo_data=seoul_geojson,
fill_color="#22AA44",
fill_opacity=0.4,
line_opacity=1,
).add_to(m)
m
folium doc
https://python-visualization.github.io/folium/quickstart.html
'데이터 분석 및 시각화 > 데이터 시각화' 카테고리의 다른 글
[SUPERSET] 대시보드 REACT 임베딩 하는법(동적 쿼리) (4) | 2023.06.06 |
---|---|
[SUPERSET] 아파치 슈퍼셋(superset) 소개 및 설치 (0) | 2023.06.04 |
[Python] Seaborn(stripplot, swarmplot, catplot, jointplot, pairplot, Pandas pivot table), Pandas Pivot table (0) | 2023.01.27 |
[Python] Seaborn(barplot, boxplot, violinplot) (0) | 2023.01.27 |
[Python] Seaborn(style 세팅, 카운트 플롯, 히스토그램(displot)) (0) | 2023.01.26 |