
파이썬에서 사용할 수 있는 지도 시각화 라이브러리
!pip install folium
import folium
foilum.Map()
location = [위도,경도] or (위도,경도) | list or tuple
➡️ 지도시각화
zoom_start = n | number 0 ~ 18
➡️ 지도 확대

tiles = "옵션" | str
➡️ 지도 모형
"OpenStreetMap"
"CartoDB Positron"
"CartoBD Voyager"
"NASAGIBS Blue Marble"

folium.Marker().add_to(변수)
location = [위도,경도] or (위도,경도) | list or tuple
➡️ 마커 위치
tooltip = "" | str
➡️ 마우스 커서위로 문구출력
popup = "" | str
➡️ 클릭 시 팝업문구
HTML 이용 시 링크삽입가능

icon = folium.Icon()
- color = "색상"
 
➡️ 좌표컬러- icon = "아이콘명"
 
➡️ 좌표의 이미지- Icon_color = ""
 
➡️ 좌표 내 아이콘 컬러
- angle = n
 
➡️ 좌표 내 아이콘 기울기
- prefic = "glyphicon" or "fa" | 설명확인필요
 
➡️ 이미지별 사용해야할 옵션이 다름
   
지도를 마우스로 클릭했을 때 마커 생성 후 위도경도 반환
변수.add_child(folium.ClickForMarker())
디폴트값
➡️지도 위 클릭 시 마커생성 -> 위도 경도 반환

popup = "팝업문구" | str
➡️ 팝업옵션 사용 시 위도경도 X -> 팝업문구 반환

 
지도를 마우스로 클릭했을 때 마커없이 위도경도 반환
변수.add_child(folium.LatLngPopup())
디폴트값
➡️ 지도 위 클릭 시 위도경도 반환

 
folium.Circle().add_to(변수)

folium.CircleMarker()도 동일하나
circleMarker가 조금 더 정확한 위치를 반환한다.

지도 경계선 추가
geo_data="../data/02. us-states.json" | 경계산이 적힌 json 파일 경로data = state_data | 구별 실업율 dataframecolumns=["State","Unemployment"]key_on = "feature.id"fill_color="BuPu"fill_opacity=1legend_name = "Unemployment rate (%)"
📊 동작구 주택 위치별 세대수 시각화

non data 제외

세대 수 평균분포 확인

- 세대 수 평균 이상일 경우 Marker red 이하일경우 blue
 - 세대수 75% 이상일 경우 Circle Marker pink 이하일경우 green
 - 팝업 - 주택유형
 - 클릭 시 주소노출 (tooltip)
 
m = folium.Map(
    [37.49682, 126.9529],	#동작구 위치
    zoom_start=13
)
for idx, row in df.iterrows() :
    #location
    lat, lng = row.위도, row.경도
    #Marker
    folium.Marker(
        location = [lat,lng],
        popup = row.주소,
        tooltip=row.분류,
        icon = folium.Icon(
            icon = "home",
            color = "lightred" if row.세대수 >= 199 else "lightblue",
            icon_color = "darkred"  if row.세대수 >= 199 else "darkblue",
        )
    ).add_to(m)
    #CircleMarker
    folium.Circle(
        location = [lat,lng],
        radius = row.세대수,
        fill = True,
        color = "pink" if row.세대수 >= 518 else "green",
        fill_color = "pink" if row.세대수 >= 518 else "green",
    ).add_to(m)
m
