[COMPAS 고양시] 데이터 시각화 해보기 ( feat. python, folium )

솜씨좋은장씨

·

2020. 8. 1. 00:20

사용 라이브러리

- pandas, folium, geopandas, geojson, json

시각화에 사용한 데이터

02.자전거스테이션.csv

column 명 Station_ID STATION_NAME 거치대 수량 위도 경도
내용 스테이션 고유번호 스테이션 이름 자전거 최대 수용량 위도 경도

09.행정경계(읍면동).geojson

EMD_CD EMD_KOR_MM
읍면동 코드 읍면동 이름

 

자전거 대여소(스테이션) 시각화를 통하여 스테이션의 대략적인 분포 확인하기

 

import pandas as pd
import folium
from folium.plugins import MarkerCluster, MiniMap
import geopandas as gpd
import geojson
import json

먼저 필요한 라이브러리를 import 합니다.

bicycle_data = pd.read_csv("./02.자전거스테이션.csv")
bicycle_data.columns = ['station_id', 'station_name', 'nums', 'latitude', 'longitude']
bicycle_data

 

latitude = 37.662319
longitude = 126.823963

구글지도에서 고양시의 중심즈음의 좌표를 가져옵니다.

m = folium.Map(location=[latitude, longitude], zoom_start=12)#, tiles='color_map')
gdf = gpd.read_file('./09.행정경계(읍면동).geojson')
gdf = gdf.to_crs(epsg='4326')
converted_json = gdf.to_json()

for i in range(len(my_json2)):
    m.choropleth(
        geo_data = my_json2[i],
        name='인구수',
        key_on='properties.emd_cd',
        fill_color='YlGn',
        fill_opacity=0,
        line_opacity=1,
        color = 'blue',
        overlays=True
    )
    for key in m._children:
        if key.startswith('color_map'):
            del(m._children[key])
mc = MarkerCluster()

for row in bicycle_data.itertuples():
    mc.add_child(folium.Marker(location = [row.latitude, row.longitude], popup=row.station_name + str(row.nums)))
    m.add_child(mc)
m

자전거 대여소가 존재하는 지역

대여소가 있는 지역 대여소가 없는 지역
가좌동, 덕이동, 대화동, 정발산동, 일산동, 중이동
주엽동, 마두동, 장항동, 풍동, 식사동, 주교동,
도내동, 행신동, 삼송동, 원흥동, 토당동, 중산동,
화정동, 삼송동, 신원동, 동산동, 백석동
벽제동, 고양동, 내유동, 관산동, 대자동, 선유동
지영동, 설문동, 성석동, 문봉동, 사리현동, 원당동
오금동, 효자동, 용두동, 화전동, 현천동, 강매동
행주외동, 신평동, 법곳동, 구산동, 내곡동, 대장동
산황동