R - 지도시각화(kormaps2014) : 대한민국 시도별 인구, 결핵 환자 수 단계 구분도
참고 : Do it! 쉽게 배우는 R 데이터분석
패키지 준비하기
install.packages("stringi")
devtools::install_github("cardiomoon/kormaps2014")
library(stringi)
library(kormaps2014)
kormaps2014 패키지를 이용하면 대한민국의 지역 통계 데이터와 지도 데이터를 사용할 수 있다
kormaps2014 패키지를 설치하기 위해, stringi, devtools패키지를 설치한 후 깃허브에서 kormaps2014를 다운로드해준다
대한민국 결핵환자 데이터 준비
kormaps2014 패키지에는 지역별 결핵 환자 수에 대한 tbc 데이터가 있다
# 결핵환자 데이터 준비
changeCode(tbc)
# 지도 데이터 준비
changeCode(kormap1)
tbc 데이터와 시도별 위도, 경도 정보를 담고 있는 kormap1 지도 데이터를 불러왔다
# 지도 시각화
ggChoropleth(data = tbc,
aes(fill = NewPts, map_id = code, tooltip = name),
map = kormap1,
interactive = T)
환자수를 나타내는 NewPts, 지역기준변수인 code를 지정해주고
code는 숫자 코드로 되어 있기 때문에, 코드 대신 지역명이 표시되도록 tooltip = name으로 지정해주자
그럼 이렇게 마우스를 올렸을 때, 숫자 코드가 아닌 제주특별자치도 처럼 지역명이 표시된다
한글 엔코딩
한글에 문제가 생기면 iconv 기억하기
tbc$name <- iconv(tbc$name, "UTF-8")
tbc$name
위 코드를 통해 한글 엔코딩 처리 후 다시 지도 시각화 하면 된다
지역 통계 데이터 - 인구수
이번엔 결핵 환자 수가 아닌 인구수를 시각화 해보자
시도별 인구통계 정보가 담겨있는 korpop1데이터를 불러오자
changeCode(korpop1)
str(changeCode(korpop1))
#변수 이름 변경
library(tidyverse)
korpop1_copy <- rename(korpop1, name = 행정구역별_읍면동, pop = 총인구_명)
head(korpop1_copy)
변수 이름을 영어로 바꿔주었다 ( 혹시 모를 오류 방지!)
한글 엔코딩
# 한글 엔코딩
korpop1_copy$name <- iconv(korpop1_copy$name, "UTF-8")
head(korpop1_copy)
지도 데이터 - 시각화
# 지도 데이터
changeCode(kormap1)
# 지도 시각화
options(scipen = 99)
ggChoropleth(data = korpop1_copy,
aes(fill = pop, map_id = code),
map = kormap1)
# interactive
ggChoropleth(data = korpop1_copy,
aes(fill = pop, map_id = code),
map = kormap1,
interactive = T)
# 지역 이름으로 나오게 변경
ggChoropleth(data = korpop1_copy,
aes(fill = pop, map_id = code, tooltip = name),
map = kormap1,
interactive = T)
지도 데이터인 kormap1 불러오기!
options(scipen = 99) : 지수 표기를 숫자 표기로 바꾸는 옵션이다
마지막 tooltip = name으로 지정해주면서 마우스를 올려놨을 때, 지역명이 나오게 설정하였다
저번 포스팅과 이번 포스팅을 통해 지도 시각화에 대해 알아봤다
쓰는 데이터는 달라도 ggChoropleth 함수를 이용하는 건 같아서 어렵진 않았던 것 같다
한글 엔코딩 문제는 iconv!
그럼 오늘 포스팅도 끝