Folium 라이브러리는 지도 위에 시각화할 때 유용한 도구이다.
Folium 라이브러리의 Map() 함수를 이용하면 간단하게 지도 객체를 만들 수 있다.
지도 화면은 고정된 것이 아니고 줌 기능과 화면 이동이 모두 가능하다.
Folium은 웹 기반 지도를 만들기 때문에 IDE 환경에서 실행해도 지도가 표시가 되지 않는다.
지도를 보려면 지도 객체에 save() 메소드를 적용하여 HTML 파일로 저장하고, 웹 브라우저에서 파일을 열어서 확인해야 한다.
import folium
#서울 지도 만들기
seoul_map = folium.Map(location = [37.55, 126.98], zoom_start=12)
#지도를 HTML 파일로 저장하기
seoul_map.save('/seoul.html')
다음과 같은 지도가 만들어 진다.
지도 스타일 적용하기
Map() 함수에 tiles 옵션을 적용하면 지도에 적용하는 스타일을 변경하여 지정할 수 있다.
seoul_map2 = folium.Map(location=[37.55, 126.98], tiles='Stamen Terrain', zoom_start=12)
seoul_map3 = folium.Map(location=[37.55, 126.98], tiles='Stamen Toner', zoom_start=15)
seoul_map2.save('./seoul2.html')
seoul_map3.save('./seoul3.html')
지도에 마커 표시하기
마커 위치를 표시하려면 Marker() 함수에 위도, 경도 정보를 전달한다.
popup 옵션을 추가하면 마커를 클릭했을 때 팝업창에 표시해주는 텍스트를 넣을 수 있다.
df = pd.read_excel('/content/drive/MyDrive/part4/서울지역 대학교 위치.xlsx')
seoul_map = folium.Map(location=[37.55,126.98], tiles='Stamen Terrain', zoom_start=12)
for name, lat, lng in zip(df.index, df.위도, df.경도):
folium.Marker([lat, lng], popup=name).add_to(seoul_map)
seoul_map.save('./seoul_colleges.html')
이번엔 원형 마커를 표시할 것이다. Marker() 대신 CircleMarker() 함수를 사용한다.
원형 마커의 크기, 색상, 투명도 등을 설정할 수 있다.
for name, lat, lng in zip(df.index, df.위도, df.경도):
folium.CircleMarker([lat, lng],
radius=10,
color='brown',
fill=True,
fill_color='coral',
fill_opacity=0.7,
).add_to(seoul_map)
seoul_map.save('./seoul_colleges2.html')
지도 상의 어떤 경계에 둘러싸인 영역에 색을 칠하거나 음영 등으로 정보를 나타내는 시각화 방법이다.
이는 Choropleth() 함수를 이용한다.
import json
file_path = '/content/drive/MyDrive/part4/경기도인구데이터.xlsx'
df = pd.read_excel(file_path, index_col='구분')
df.columns = df.columns.map(str)
geo_path = '/content/drive/MyDrive/part4/경기도행정구역경계.json'
#경기도 시군구 경계 정보를 가진 geo-json 파일 불러오기
try:
geo_data = json.load(open(geo_path, encoding='utf-8'))
except:
geo_data = json.load(open(geo_path, encoding='utf-8-sig'))
#경기도 지도 만들기
g_map = folium.Map(location=[37.5502, 126.982], tiles='Stamen Terrain', zoom_start=9)
#출력할 연도 선택
year = '2007'
#Choropleth 클래스로 단계 구분도 표시하기
folium.Choropleth(geo_data = geo_data, #지도 경계
data = df[year], #표시하려는 데이터
columns = [df.index, df[year]], #열 지정
fill_color='YlOrRd', fill_opacity=0.7, line_opacity=0.3,
threshold_scale=[10000, 100000, 300000, 500000, 700000],
key_on = 'feature.properties.name',
).add_to(g_map)
g_map.save(g_map.save('./gyonggi_population_' + year + '.html')
2017년으로 바꿔서 출력한 데이터는 다음과 같다.
'Study > 혼자 공부하는 판다스' 카테고리의 다른 글
혼자 공부하는 판다스 - 데이터 사전 처리(데이터 표준화, 범주형 데이터 처리) (0) | 2022.04.22 |
---|---|
혼자 공부하는 판다스 - 데이터 사전 처리(누락 데이터 처리, 중복 데이터 처리) (0) | 2022.04.22 |
혼자 공부하는 판다스 - Seaborn 라이브러리 (0) | 2022.04.21 |
혼자 공부하는 판다스 - 시각화 도구 (0) | 2022.04.05 |
혼자 공부하는 판다스 - 데이터 살펴보기 (0) | 2022.04.04 |