[Python] Folium

신은지·2024년 10월 25일
0

Python

목록 보기
19/23
post-thumbnail

Folium

  • 지도 시각화 라이브러리
  • 기본적으로 크롬에서 동작이 가장 좋음

Folium Library Install

conda install -c conda-forge folium

기본적인 사용법

  • 위도, 경도를 입력
m = folium.Map(location=[37.544564958079896, 127.05582307754338]) # 0 - 18
m

  • 지도를 html로 저장
m.save("./folium.html")
!dir

  • tiles 옵션
    - "OpenStreetMap"
    - "Mapbox Bright" (Limited levels of zoom for free tiles)
    - "Mapbox Control Room" (Limited levels of zoom for free tiles)
    - "Stamen" (Terrain, Toner, and Watercolor)
    - "Cloudmade" (Must pass API key)
    - "Mapbox" (Must pass API key)
    - "CartoDB" (positron and dark_matter)
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], 
    zoom_start=14,
    tiles="OpenStreetMap"
) 
m

Marker

  • Marker 추가
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) 

# 뚝섬역
folium.Marker((37.54712311308356, 127.04721916917774)).add_to(m)
m

  • Marker의 popup
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) 

# 뚝섬역
folium.Marker((37.54712311308356, 127.04721916917774)).add_to(m)

# 성수역
folium.Marker(
    location=[37.544564958079896, 127.05582307754338],
    popup="Subway" # <a href></a> 태그도 사용 가능
).add_to(m)
m

  • Marker의 tooltip
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) 

# 뚝섬역
folium.Marker((37.54712311308356, 127.04721916917774)).add_to(m)

# 성수역
folium.Marker(
    location=[37.544564958079896, 127.05582307754338],
    popup="<b>Subway<b>"
).add_to(m)

# tooltip
folium.Marker(
    location=[37.544564958079896, 127.05582307754338],
    popup="<b>Subway<b>",
    tooltip="성수역"
).add_to(m)
m


Icon

m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) 

# icon basic
folium.Marker(
    (37.54712311308356, 127.04721916917774), 
    icon=folium.Icon(color="black", icon='info-sign')
).add_to(m)

# icon icon_color
folium.Marker(
    location=[37.544564958079896, 127.05582307754338],
    popup="<b>Subway<b>",
    tooltip="icon color",
    icon=folium.Icon(
        color="red",
        icon_color="pink",
        icon="cloud"
    )
).add_to(m)

# Icon custom
folium.Marker(
    location=[37.54035903907497, 127.06913328776446],# 건대입구역
    popup="건대입구역",
    tooltip="Icon custom",
    icon=folium.Icon(
        color="purple",
        icon_color="green",
        icon="bookmark")
).add_to(m)
m


folium.ClickForMarker()

  • 지도 위에 마우스로 클릭했을 때 마커 생성
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) # 0 ~ 18

m.add_child(folium.ClickForMarker())

  • popup 사용
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) # 0 ~ 18

m.add_child(folium.ClickForMarker(popup="ClickForMarker"))


folium.LatLngPopup()

  • 지도를 마우스로 클릭했을 때 위도 경도 정보 반환
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338], # 성수역
    zoom_start=14,
    tiles="OpenStreetMap"
) # 0 ~ 18

m.add_child(folium.LatLngPopup())


folium.Circle(), folium.CircleMarker()

  • 지도를 마우스로 클릭했을 때 해당 지점을 동그라미로 표시
m = folium.Map(
    location=[37.544564958079896, 127.05582307754338],
    zoom_start=14,
    tiles="OpenStreetMap"
) # 0 ~ 18

# Circle
folium.Circle(
    location=[37.555243442409406, 127.04370422643919], # 한양대학교
    radius=100,
    fill=True,
    color="#eb9e34",
    fill_color="red",
    popup="Circle Popup",
    tooltip="Circle Tooltip"
).add_to(m)

# CircleMarker
folium.CircleMarker(
    location=[37.544564958079896, 127.05582307754338],
    radius=30,
    fill=True,
    color="#34ebc6",
    fill_color="c634eb",
    popup="CircleMarker Popup",
    tooltip="CircleMarker Tooltip"
).add_to(m)
m


folium.Choropleth

m = folium.Map([43, -102], zoom_start=3)

folium.Choropleth(
    geo_data="../data/02. us-states.json", # 경계선 좌표값이 담긴 데이터
    data=state_data, # Series or DataFrame 
    columns=["State", "Unemployment"], # DataFrame columns 
    key_on="feature.id",
    fill_color="BuPu",
    fill_opacity=0.5, # 0~1 
    line_opacity=0.2, # 0~1
    legend_name="Unemployment rate (%)"    
).add_to(m)

m





* 이 글은 제로베이스 데이터 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.

profile
I believe there is no best, only better

0개의 댓글