-
(8) 데이터분석_folium데이터분석 2023. 6. 14. 17:02728x90
1. folium
- leaflet.js 기반으로 만들어진 라이브러리
- 지도위에 데이터를 표현해주는 대표적인 파이썬 지도 시각화 라이브러리
- https://python-visualization.github.io/folium
Folium — Folium 0.14.0 documentation
folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. Manipulate your data in Python, then visualize it in on a Leaflet map via folium. Concepts folium makes it easy to visualize data tha
python-visualization.github.io
folium을 사용하기 위해 다운로드를 받는다.
!pip install foliumimport folium# folium.Map(location=[위도,경도], zoom_start=배율, ...)map_folium = folium.Map(location = [37.50006, 127.0355806], zoom_start = 17)map_folium# Marker(): location 속성으로 지정한 위치에 마커를 생성# popup(): 마커를 클릭했을 때 표시할 문자열을 설정# add_to(): 작성된 마커를 지도에 추가
map_folium = folium.Map(location = [37.50006, 127.0355806], zoom_start = 17)popup = folium.Popup('역삼역',max_width=200)folium.Marker(location = [37.50006, 127.0355806],popup=popup).add_to(map_folium)# 지도: 37.56652479270633, 126.9779129116262# 서울특별시청: 37.56652479270633, 126.9779129116262# 덕수궁: 37.56585320879458, 126.97514572197248# 서울지방경찰청: 37.57504045678939, 126.97195576938117# 광화문: 37.57617987638928, 126.97694467807803# 영풍문고-종로본점: 37.56999947440024, 126.98228391170936from folium.features import CustomIcon
icon_image = 'bat.png'icon = CustomIcon(icon_image,icon_size=(45, 45))map_folium = folium.Map(location = [37.56652479270633, 126.9779129116262], zoom_start = 15)
popup = folium.Popup('서울특별시청',max_width=200)folium.Marker(location = [37.56652479270633, 126.9779129116262],popup=popup, icon = folium.Icon(color='red',icon='star')).add_to(map_folium)
popup = folium.Popup('덕수궁',max_width=200)folium.Marker(location = [37.56585320879458, 126.97514572197248],popup=popup, icon = icon).add_to(map_folium)
popup = folium.Popup('서울지방경찰청',max_width=200)folium.Marker(location = [37.57504045678939, 126.97195576938117],popup=popup, icon = folium.Icon(color='yellow',icon='star')).add_to(map_folium)
popup = folium.Popup('광화문',max_width=200)folium.Marker(location = [37.57617987638928, 126.97694467807803],popup=popup, icon = folium.Icon(color='green',icon='star')).add_to(map_folium)
popup = folium.Popup('영풍문고-종로본점',max_width=200)folium.Marker(location = [37.56999947440024, 126.98228391170936],popup=popup, icon = folium.Icon(color='blue',icon='star')).add_to(map_folium)
map_folium# CircleMarker()map_folium = folium.Map(location = [37.56652479270633, 126.9779129116262], zoom_start = 15)
popup = folium.Popup('서울특별시청',max_width=200)folium.CircleMarker(location = [37.56652479270633, 126.9779129116262],popup=popup, radius = 100, color = 'red', fill_color='#EC4074').add_to(map_folium)map_foliumfolium 활용
import pandas as pdlibrary = pd.read_csv('/content/drive/MyDrive/study/데이터분석/data.csv')
map = folium.Map(location=[37.58,127.0],zoom_start=11)
for _, row in library.iterrows():icon_image = 'lib.png'icon = CustomIcon(icon_image,icon_size=(45, 45))folium.Marker(location = [row['위도'],row['경도']],popup=row['시설명'], icon = icon).add_to(map)map!npm install @googlemaps/markerclusterer# MarkerClusterfrom folium.plugins import MarkerClustermc = MarkerCluster()map = folium.Map(location=[37.58,127.0],zoom_start=11)
for _, row in library.iterrows():icon_image = 'lib.png'icon = CustomIcon(icon_image,icon_size=(45, 45))
# folium.Marker(location = [row['위도'],row['경도']],popup=row['시설명'], icon = icon).add_to(map)popup = folium.Popup(row['시설명'], max_width=200)folium.Marker(location=[row['위도'], row['경도']], popup=popup, icon=icon).add_to(mc)mc.add_to(map)map# 서클마커로 도서관 표시하기# 2010년 이후 개장: 파랑색# 2010년 이전 개장: 발강색
# MarkerClusterfrom folium.plugins import MarkerClustermc = MarkerCluster()map = folium.Map(location=[37.58,127.0],zoom_start=11)
for _, row in library.iterrows():popup = folium.Popup(row['시설명'], max_width=200)openLib = row['개관일'].split('-')[0]if int(openLib) >= 2010:folium.Marker(location=[row['위도'], row['경도']], popup=popup, icon = folium.Icon(color='blue')).add_to(mc)else:folium.Marker(location=[row['위도'], row['경도']], popup=popup, icon = folium.Icon(color='red')).add_to(mc)mc.add_to(map)map# 서클마커로 도서관 표시하기# 2010년 이후 개장: 파란색# 2010년 이전 개장: 빨간색def select_color(row):year = int(row['개관일'].split('-')[0])if year > 2010:return 'blue'else:return 'red'map = folium.Map(location=[37.58, 127.0], zoom_start=13)for _, row in library.iterrows():popup = folium.Popup(row['시설명'], max_width=200)folium.Circle(location=[row['위도'], row['경도']], popup=popup, radius=200, color=select_color(row),fill_color=select_color(row)).add_to(map)map'데이터분석' 카테고리의 다른 글
(10) 데이터분석_전국 도시공원 데이터 프로젝트 (0) 2023.06.15 (9) 데이터분석_상권별 업종 밀집통계 프로젝트 (0) 2023.06.14 (7) 데이터분석_워드 클라우드 (0) 2023.06.14 (6) 데이터분석_형태소 분석 (0) 2023.06.13 (5) 데이터분석_가상 쇼핑몰 데이터 프로젝트 (0) 2023.06.13