지도 시각화


미국 주별 강력 범죄율

지도를 활용한 데이터 산출을 위해서는 ggiraphExtra 패키지를 사용해야 하므로 설치 후 사용할 준비를 해줍니다.

> install.packages("ggiraphExtra")
> library(ggiraphExtra)

R에 USArrests 라는 내장 데이터가 있습니다. 이것은 1973년 미국 주별 강력 범죄율 정보를 담고 있어, 해당 데이터를 이용하여 분석해 보겠습니다.

> head(USArrests)
           Murder Assault UrbanPop Rape
Alabama      13.2     236       58 21.2
Alaska       10.0     263       48 44.5
Arizona       8.1     294       80 31.0
Arkansas      8.8     190       50 19.5
California    9.0     276       91 40.6
Colorado      7.9     204       78 38.7

위 데이터를 살펴보면 지역명 속성이 따로 존재하지 않기 때문에 해당 데이터를 tibble 패키지를 이용하여 변경해 줍니다.

> library(tibble)
> crime = rownames_to_column(USArrests, var = "state")
> crime$state = tolower(crime$state)
> head(crime)
       state Murder Assault UrbanPop Rape
1    alabama   13.2     236       58 21.2
2     alaska   10.0     263       48 44.5
3    arizona    8.1     294       80 31.0
4   arkansas    8.8     190       50 19.5
5 california    9.0     276       91 40.6
6   colorado    7.9     204       78 38.7

색상의 옅음, 진함을 기준으로 구분되기 때문에 단계 구분도로 만들어야 합니다. 이때 ggChoropleth()을 이용합니다.

> install.packages("maps")
> install.packages("mapproj")
> library(mapproj)
> library(maps)
> states_map = map_data("state")
> ggChoropleth(data = crime, aes(fill = Murder, map_id = state), map = state_map)

위와 같이 코드를 작성한 후 실행하면 아래와 같이 지도에 색상의 진함 정도를 구별할 수 있습니다.

map_murder

대한민국 시도별 인구 단계 구분도

우리나라 지도를 사용하기 위해서 kormaps2014 패키지를 이용합니다. 이 패키지를 사용하기 위해서는 stringi, devtools 패키지를 먼저 설치하여야 합니다.

> install.packages("stringi")
> install.packges("devtools")
> devtools::install_github("cardiomoon/kormaps2014")
> library(kormaps2014)

kormaps2014에는 korpop1 데이터가 내장되어 있습니다. korpop1은 2015년 센서스 데이터(시도별)입니다. 총인구_명 속성과 행정구역별_읍면동 속성을 이용하기 때문에 이를 rename() 함수를 이용하여 pop, name으로 변경합니다.

> korpop1 = rename(korpop1, pop = 총인구_명, name = 행정구역별_읍면동)
> ggChoropleth(data = korpop1, aes(fill = pop, map_id = code, tooltip = name), map = kormap1, interactive = T)

map_kor




© 2017. by k3y6reak

Powered by k3y6reak