지도 시각화
미국 주별 강력 범죄율 단계 구분도 만들기
지역별 통계치를 색깔의 차이로 표현한 지도를 단계구분도라고 한다
단계 구분도를 보면 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해할 수 있다
미국 주별 강력 범죄율 단계 구분도 만들기
- 패키지 -
ggiraphExtra
- 미국 주별 범죄 데이터 -
USArrests
> 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
지역명 변수가 따로 없고, 행이름이 지역명으로 되어있기 때문에 행이름을 state 변수로 바꿔서 새 프레임을 만들어야 한다library(tibble) crime <- rownames_to_column(USArrests, var="state") crime$state <- tolower(crime$state)
- 미국 주 지도 데이터 준비
단계 구분도를 만들려면 지역별 위도, 경도 정보가 있는 지도 데이터가 필요하다.maps
패키지에state
데이터 사용ggplot2
의map_date()
를 이용해 데이터 프레임 형태로 불러온다install.packages("maps") library(ggplot2) states_map <- map_data("state")
- 단계 구분도 만들기
ggiraphExtra
의ggChoropleth()
mapproj
패키지 필요install.packages("mapproj") ggChoropleth(data = crime, aes(fill = Murder, map_id = state), map = states_map)
- 인터랙티브 단계 구분도 만들기
interactive
파라미터를 TRUE로 설정하면 마우스 움직임에 반응하는 인터랙티브 단계 구분도를 만들 수 있다install.packages("mapproj") ggChoropleth(data = crime, aes(fill = Murder, map_id = state), map = states_map, interactive = T)
대한민국 시도별 인구, 결핵 환자 수 단계 구분도 만들기
대한민국 시도별 인구 단계 구분도 만들기
- 패키지 준비
stringi
:kormaps2014
패키지 이용에 필요devtools
:install_github()
를 이용해 패키지 개발자가 깃 허브에 공유한 패키지를 설치할 수 있다install.packages("stringi") install.packages("devtools") devtools::install_github("cardiomoon/kormaps2014") library(kormaps2014)
- 대한민국 시도별 인구 데이터 준비
korpop1
: 2015년 센서스 데이터(시도별)korpop1
데이터의 인코딩이 UTF-8 이기 때문에changeCode()
를 이용해 깨지지 않고 출력된다
str(changeCode(korpop1)) 'data.frame': 17 obs. of 25 variables: $ C행정구역별_읍면동 : chr "'11" "'21" "'22" "'23" ... $ 행정구역별_읍면동 : chr "서울특별시" "부산광역시" "대구광역시" "인천광역시" ... $ 시점 : chr "2015" "2015" "2015" "2015" ... $ 총인구_명 : chr "9904312" "3448737" "2466052" "2890451" ... $ 남자_명 : chr "4859535" "1701347" "1228511" "1455017" ...
- 변수명을 영문자로 바꿔준다
library(dplyr) korpop1 <- rename(korpop1, pop = 총인구_명, name = 행정구역별_읍면동)
- 대한민국 시도 지도 데이터 준비
str(changeCode(kormap1))
- 단계 구분도 만들기
ggChoropleth(data = korpop1, # 지도에 표현할 데이터 aes(fill = pop, # 색깔로 표현할 변수 map_id = code, # 지역 기준 변수 tooltip = name), # 지도 위에 표시할 지역명 map = kormap1, # 지도 데이터 interactive = T) # 인터랙티브
대한민국 시도별 결핵 환자 수 단계 구분도 만들기
kormaps2014
에 지역별 결핵 환자 수에 대한 정보를 담고 있는 tbc
데이터가 있다
tbc
의NewPts
변수를 이용해 시도별 결핵 환자 수 단계 구분도를 만들 수 있다ggChoropleth(data = tbc, aes(fill = NewPts, map_id = code, tooltip = name), map = kormap1, interactive = T)