반응형
SMALL
오늘은 조금 흥미로운 폴리엄(Folium) 라이브러리를 이용해보도록 하겠습니다
폴리엄(Folium) 라이브러리는 지도 위에 시각화를 할 수 있는 라이브러리입니다
폴리엄(Folium) 라이브러리는 기본 설치가 안되있어서 따로 설치가 필요하네요-_-
※ 설치 방법
맥(MAC) OS : 터미널 → conda install -c conda-forge folium 입력 → y 입력 → 아나콘다 재기동
그런데 폴리엄(Folium)은 웹(Web) 기반 지도를 생성하여 여태해왔던 스파이더(Spyder) 같은 IDE로는 출력 결과를 볼 수 없습니다
그렇기 때문에 save() 메소드(Method)를 이용해 HTML 파일을 만들어서 확인하거나
웹(Web) 기반 IDE(Jupyter Notebook 등)를 이용해야합니다
# 판다스(Pandas)
import pandas
import json
# 폴리엄(Folium)
import folium
# 인천 지도 생성
filepath = "/Users/dennis_sa/Documents/"
incheon_map = folium.Map(location = [37.53, 126.74], # [위도, 경도]
tiles = 'Stamen Terrain', # Stamen Terrain - 지형 강조
# Stamen Toner - 도로 강조
zoom_start = 12)
# incheon_map 특정 위치에 마커를 표시하고 클릭시에 TEST 출력
folium.Marker([37.53, 126.74], popup = 'TEST').add_to(incheon_map)
# incheon_map 특정 위치에 원형 마커를 표시하고 클릭시에 TEST 출력
folium.CircleMarker([37.60, 126.80],
radius = 10, # 원의 반지름
color = 'red', # 원의 둘레 색상
fill = True, # 원 채우기
fill_color = 'red', # 채우기 색상
fill_opacity = 0.7, # 투명도
popup = 'TEST').add_to(incheon_map)
incheon_map.save(filepath + "incheon.html")
# 경기도 인구변화 데이터
gyeonggi_data = pandas.read_excel(filepath + "경기도인구데이터.xlsx", index_col = '구분')
gyeonggi_data.columns = gyeonggi_data.columns.map(str)
print(gyeonggi_data, end = '\n')
# 경기도 시군구 경계 정보 데이터
try :
boundary_data = json.load(open(filepath + "경기도행정구역경계.json", encoding = 'utf-8'))
except :
boundary_data = json.load(open(filepath + "경기도행정구역경계.json", encoding = 'utf-8-sig'))
print(boundary_data, end = '\n')
# 경기도 지도 생성
gyeonggi_map = folium.Map(location = [37.5502, 126.982],
tiles = 'Stamen Terrain',
zoom_start = 9)
year = '2017'
# 단계구분도 표시
folium.Choropleth(geo_data = boundary_data, # 경계 데이터
data = gyeonggi_data[year], # data
columns = [gyeonggi_data.index, gyeonggi_data[year]], # 열
fill_color = 'YlOrRd', # 채우기 색상
fill_opacity = 0.7, # 투명도
line_opacity = 0.3, # 선 투명도
threshold_scale = [10000, 50000, 100000, 300000, 500000, 700000], # 축적
key_on = 'feature.properties.name').add_to(gyeonggi_map)
gyeonggi_map.save(filepath + "gyeonggi.html")
위치 정보 데이터를 이용해 지도에 점을 찍거나 경계를 구분 지어보았습니다
지도를 통해 데이터를 분석하고자 할 때 유용할 것 같네요-_-
이것으로 폴리엄(Folium) 라이브러리(Library) 학습을 마치도록 하겠습니다
반응형
LIST
'Python' 카테고리의 다른 글
[Python] 데이터 사전 처리(Preprocessing)_2 (0) | 2019.10.07 |
---|---|
[Python] 데이터 사전 처리(Preprocessing)_1 (0) | 2019.10.01 |
[Python] 씨본(Seaborn) 라이브러리(Library)_2 (0) | 2019.09.30 |
[Python] 씨본(Seaborn) 라이브러리(Library)_1 (0) | 2019.09.26 |
[Python] 맷플롯립(Matplotlib) 라이브러리(Library)_3 (0) | 2019.09.25 |