-
[Folium] 파이썬 Folium을 이용해서 마커를 찍는 방법Python/시각화 2023. 6. 9. 10:46반응형
파이썬 Folium을 이용해서 마커를 찍는 방법
파이썬(Python)의 지도 시각화를 위해 흔히 사용되는 패키지인 폴리움(Folium) 이야기입니다. Folium은 단순히 지도를 띄워 주는 기능부터 시작해서 GeoJSON 파일을 이용해 특정 도시 구획을 강조하는 기능, 그리고 마커(Marker)를 찍어서 특정 지점에 대한 설명을 하는 기능 등이 있습니다. 이번에는 Folium에서 제공하는
CircleMarker
라는 기능을 이용해서 원하는 위치에 마커를 찍어 보는 작업을 해 보겠습니다.이번 시각화에 사용한 데이터는 서울특별시의 행정구역 정보가 담겨있는 GeoJSON 데이터(바로가기)와 서울특별시 자동심장충격기(AED) 정보 조회 데이터(바로가기)입니다. 이를 이용해서, 서울에는 어디에 AED가 비치되어 있는지 확인할 수 있는 지도 데이터를 만들어 보도록 하겠습니다.
# 패키지 불러오기 import pandas as pd import folium import json # AED 설치 정보 데이터 aed = pd.read_csv('./자동심장 충격기 정보 조회(AED)(표준 데이터).csv', encoding='cp949') # 갯수가 많아서 10개 랜덤 샘플링을 진행했습니다 aed = aed.sample(n=10, random_state=1) # 행정구역 데이터 geo_path = ('./skorea_municipalities_geo_simple.json') geo_str = json.load(open(geo_path, encoding='utf-8')) # 서울 지도로 좌표 이동 seoul_aed = folium.Map(location=[37.5502,126.982], zoom_start=11) seoul_aed
이렇게 서울특별시 지도를 파이썬으로 손쉽게 불러올 수 있습니다. 그러면 여기서 AED가 위치한 지역을 마커로 표시해야 하는데, Folium에서는 직관적인 이름의
CircleMarker
라는 기능으로 마커를 찍는 작업을 구현할 수 있습니다. 위경도 데이터는 필수로 입력해 주시고, 마커의 크기, 색상 등을 취향에 따라 입력하면 됩니다.#모든 AED 마커 표시 for i in aed.index: x = aed.loc[i, '위도'] y = aed.loc[i, '경도'] marker = folium.CircleMarker(location=[x, y], radius=5, line_color='red',fill_color='red', fill_opacity=1) marker.add_to(seoul_aed) # 서울 구 정보 표기 folium.GeoJson(geo_str, name='json_data').add_to(seoul_aed) seoul_aed.save('./seoul_aed.html') seoul_aed
이렇게 빨간 원으로 서울특별시에 위치한 AED 중 무작위 10개를 표기해 봤습니다. 이런 작업은 행정처리 및 입지전략 등의 분석에 유용하게 이용될 수 있기 때문에 관련 작업을 자주 하는 분들이라면 꼭 한번 알아두시는걸 추천드립니다. 참고로, Folium은 동작 특성상 마커를 지나치게 많이 찍으면 느려지거나 프리징이 일어날 수 있으므로 마커의 개수는 적당히 조절하는 것이 좋습니다.
반응형'Python > 시각화' 카테고리의 다른 글
[Seaborn, Plotly] 파이썬으로 Volcano plot 그려보기 (0) 2023.06.12 [Seaborn] 파이썬 씨본을 이용한 히트맵 시각화 해보기 (0) 2023.06.07 [Folium] 파이썬 Folium을 이용해서 지도 시각화를 하는 방법 (0) 2023.05.22