Python 데이터분석
[데이터분석실습]지도 시각화
Qcoding
2022. 6. 28. 00:48
반응형
## 지역별 특징을 지도로 구분해보자.
https://github.com/youngwoos/Doit_Python/tree/main/Data
GitHub - youngwoos/Doit_Python: <Do it! 쉽게 배우는 파이썬 데이터 분석> 저장소
<Do it! 쉽게 배우는 파이썬 데이터 분석> 저장소. Contribute to youngwoos/Doit_Python development by creating an account on GitHub.
github.com
서울시 동별 외국인 인구 단계구분도 만들기
1)서울시 동 경계 지도 데이터 준비하기
import pandas as pd
import numpy as np
import seaborn as sns
import json
geo=json.load(open('./EMD_Seoul.geojson',encoding='UTF-8'))
#행정코드출력
geo['features'][0]['properties']
#위도, 경도 좌표 출력
geo['features'][0]['geometry']
2) 서울시 동별 외국인 인구 데이터 준비하기
df=pd.read_csv('./Foreigner_EMD_Seoul.csv')
df
df.info()
3) 단계 구분도 만들기
-> 지역을 8단계로 나누고 9개 계급 구간의 하한값 , 상한값을 생성
bins=list(df["pop"].quantile([0,0.2,0.4,0.5,0.6,0.7,0.8,0.9,1.0]))
bins
-> 서울이 가운데 오도록 배경지도를 만든 다음 단계구분도를 추가함. 인구가 많을 수록 진한 파란색 fill_color='Blues , 외국인 인구가 결측치인 지역은 흰색으로 표현 nan_fill_color='White'
# 배경지도 만들기
import folium
# 서울좌표 기준
map_seoul=folium.Map(
location =[37.56,127],
zoom_start=12,
tiles='cartodbpositron'
)
# 단계구분도 만들기
folium.Choropleth(
geo_data=geo,
data=df,
## df 동이름, 인구
columns=('region','pop'),
## geo 동이름
key_on='feature.properties.ADM_DR_NM',
fill_color='Blues',
nan_fill_color='White',
fill_opacity=1,
line_opacity=0.5,
bins=bins
).add_to(map_seoul)
map_seoul
4) 구 경계선 추가하기
## 구 경계선 추가하기
geo_sig=json.load(open('./SIG_Seoul.geojson',encoding='UTF-8'))
## 서울 구 라인추가
folium.Choropleth(
#지도데이터
geo_data=geo_sig,
#투명도
fill_opacity=0,
#선두께
line_weight=2
).add_to(map_seoul)
map_seoul
반응형