qcoding

[데이터분석실습]지도 시각화 본문

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

 

반응형
Comments