Python(Colab) folium
2023. 6. 9. 17:01ㆍ파이썬
folium 라이브러리란?
- leaflet.js 기반으로 만들어진 라이브러리
- 지도위에 데이터를 표현해주는 대표적인 지도 시각화 라이브러리
기초설정
!pip install folium
import folium
from folium.features import CustomIcon # 아이콘 변경시 사용함
from folium.plugins import MarkerCluster # 마커 클러스터라는 모양을 가진 지도 표시할 라이브러리
1. folium.Map(location= [위도,경도], zoom_start=배율)
지도를 띄운다
2. folium.Marker(location=[위도,경도],max_width= 최대 크기)
지도에 마커를 표시하는 기능
3. folium.Popup('내용')
마커 선택시 팝업를 띄운다
4. folium.add_to()
주로 메소드 체이닝에 사용되며, 띄어놓은 지도에 설정을 추가한다(마커나,팝업 추가시)
5. folium.CircleMarker()
원의 범위로 마커를 생성한다.
예시
POPUP1 = folium.Popup('서울특별시청')
POPUP2 = folium.Popup('덕수궁')
POPUP3 = folium.Popup('서울지방경찰청')
POPUP4 = folium.Popup('광화문')
POPUP5 = folium.Popup('영풍문고-종로본점')
map_folium = folium.Map(location=[37.56652479270633, 126.9779129116262],zoom_start=15)
folium.Marker(location=[37.56652479270633, 126.9779129116262],popup=POPUP1,
icon=folium.Icon(color='pink',icon='star')).add_to(map_folium)
folium.Marker(location=[37.56585320879458, 126.97514572197248],popup=POPUP2,
icon=folium.Icon(color='black',icon='ok')).add_to(map_folium).add_to(map_folium)
folium.Marker(location=[37.57504045678939, 126.97195576938117],popup=POPUP3,
icon=folium.Icon(color='red',icon='user') ).add_to(map_folium)
folium.Marker(location=[37.57617987638928, 126.97694467807803],popup=POPUP4,
icon=ICON).add_to(map_folium)
folium.Marker(location=[37.56999947440024, 126.98228391170936],popup=POPUP5).add_to(map_folium)
map_folium

CircleMarker 예시
# CircleMarker () : 원의 범위를 마커로 생성
map_folium = folium.Map(location=[37.56652479270633, 126.9779129116262],zoom_start=15)
POPUP1 = folium.Popup('서울특별시청')
folium.CircleMarker(location=[37.56652479270633, 126.9779129116262],popup=POPUP,
radius=100, color='yellow',fill_color='#EC4074').add_to(map_folium)
map_folium

판다스를 이용한 데이터 프레임을 folium 적용
1. 기초설정
import pandas as pd
library = pd.read_csv('/content/drive/MyDrive/KDT-1/데이터분석/data.csv')
library

2. 지도 기초 세팅
map = folium.Map(location=[37.58,127.0],zoom_start=11)
map

3. 도서관마다 Marker를 찍고, Popup을 표시
for _, row in library.iterrows(): # 변수를 만들고 싶지 않은 경우: 언더바(_) 사용
icon_image = '/content/drive/MyDrive/KDT-1/데이터분석/checkicon.png'
icon = CustomIcon(icon_image, icon_size=(45,45))
popup = folium.Popup(row['시설명'], max_width=200)
folium.Marker(location=[row['위도'], row['경도']], popup=row['시설명'], icon=icon).add_to(map)
map

iterrows() : return 결과 (index, row_series)
데이터 프레임 반복문 돌릴 때 자주 사용
리턴값이 2개이기때문에 for문 사용 시: 변수 2개를 세팅해줘야함
예시 2 서클마커로 도서관 표시하기
조건1. 개관일 2010년 이전 빨강 / 이후 파랑
# 서클마커로 도서관 표시하기
# 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

728x90
'파이썬' 카테고리의 다른 글
[Flask] html,js,css 등 정적 파일 연결 하는법 (2) | 2023.11.07 |
---|---|
라이브러리 알아보기 (0) | 2023.10.17 |
Python(Colab) 워드클라우드(WordCloud) (0) | 2023.06.09 |
Python(Colab) 형태소 분석 KoNLPy (0) | 2023.06.09 |
Python(Colab) 데이터프레임 시각화 Matplotlib 라이브러리 (0) | 2023.06.09 |