R_서울시 지도 시각화 : 서울시 자치구 특성과 공공자전거 대여량

2021. 12. 15. 11:21Programming/R

 코로나19에 따라 사람들 간의 접촉이 높은 지하철, 버스 등의 대중교통을 기피하는 현상이 나타나고 개인이동수단인 공공자전거가 주목받고 있습니다. 지역특성이 공공자전거 수요에 미치는 영향을 알아보기 위해 서울시 자치구의 특성과 자전거 수요의 관계를 다음과 같이 시각화했습니다. 

그 중 서울시 지도 시각화 방법을 소개하겠습니다. 

library(ggmap)
library(ggplot2)
library(raster)
library(rgeos)
library(maptools)
library(rgdal)

install.packages("raster")
install.packages("rgeos")
install.packages("maptools")
install.packages("rgdal")
library(readr)
rawdata <- read_csv("E://Ai//map.csv")
P <- as.data.frame(rawdata)

map <- shapefile("E://Ai//SIG_201703/TL_SCCO_SIG.shp")
map <- spTransform(map, CRSobj = CRS('+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs'))
new_map <- fortify(map, region = 'SIG_CD')
new_map$id <- as.numeric(new_map$id)
seoul_map <- new_map[new_map$id <= 11740,]
P_merge <- merge(seoul_map, P, by='id')

 서울 자치구별로 정리된 분석 데이터셋을 dataframe으로 입력합니다. 이때 데이터는 서울시 자치구의 고유 id 컬럼이 포함된 데이터여야 합니다. 

(http://www.gisdeveloper.co.kr/?p=2332)에서 지리정보 데이터 셋을 다운받고 분석 데이터 셋과 구별좌표계 데이터를 merge() 함수를 통해 합쳐줍니다. 

 

1. 구별 경계를 그려줍니다.

ggplot() + geom_polygon(data = P_merge, aes(x=long, y=lat, group=group), fill = 'white', color='black')

2.  

ggplot() + geom_polygon(data = P_merge, aes(x=long, y=lat, group=group, fill = `Rental Center`))+ 
    scale_fill_gradient(low = "#ffffe5", high = "#ffb825", space = "Lab", guide = "colourbar")

ggplot() + geom_polygon(data = P_merge, aes(x=long, y=lat, group=group, fill = numrent))+ 
    scale_fill_gradient(low = "#ffe5e5", high = "#ff3232", space = "Lab", guide = "colourbar")

fill 의 변수에 따라 지도의 진하기가 결정됩니다. scale_fill_gradient에 따라 색상을 결정할 수 있습니다. 

지도 시각화를 통해 자치구별 차이를 한눈에 나타낼 수 있습니다. 강서구, 송파구, 영등포구에서 높은 수요를 보이고 있음을 알 수 있습니다.

시각화를 통해서 자치구별 특성을 나타내고 다른 변수와 결합을 통해 새로운 인사이트 도출이 가능합니다. 지도 시각화를 활용해서 다양한 분석을 시도해보면 좋겠습니다!