서론
지도에 지역별 특성을 색깔로 표현한 단계 구분도를 만드는 방법을 알아보자.
지도 시각화
지역별 통계치를 색깔의 차이로 표현한 지도를 '단계 구분도(Choropleth Map)'라고 한다. 단계 구분도를 보면 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해할 수 있다. 단계 구분도는 'ggiraphExtra' 패키지를 이용해 쉽게 만들 수 있다. 'ggiraphExtra' 패키지를 이용하기 전에 'mapproj'패키지를 설치해야 한다. 'ggiraphExtra'의 'ggChoropleth()'을 이용해 단계 구분도를 만들 수 있다.
install.packages("mapproj")
install.packages("ggiraphExtra")
library(ggiraphExtra)
미국 주별 강력 범죄율 단계 구분도
R에 내장된 'USArrests' 데이터는 1973년 미국 주(state)별 강력 범죄율 정보를 담고 있다. 이 데이터를 이용해 지도를 만들어 보자.
# 데이터 살펴보기
str(USArrests)
## 결과 생략
head(USArrests)
## 결과 생략
library(tibble)
# 행 이름을 바꿔 새 데이터 프레임을 만들기
crime <- rownames_to_column(USArrests, var = "state")
crime$state <- tolower(crime$state) # 소문자로 수정
str(crime)
## 결과 생략
# 미국 주 지도 데이터
install.packages("maps")
library(ggplot2)
states_map <- map_data("state")
str(states_map)
# 단계 구분도 만들기
ggChoropleth(data = crime, # 지도에 표현할 데이터
aes(fill = Murder, # 색깔로 표현할 데이터
map_id = state), # 지역 기준 변수
map = states_map) # 지도 데이터
# 인터랙티브 단계 구분도
ggChoropleth(data = crime, # 지도에 표현할 데이터
aes(fill = Murder, # 색깔로 표현할 데이터
map_id = state), # 지역 기준 변수
map = states_map, # 지도 데이터
interactive = T) # 인터랙티브
대한민국 기도별 인구
대한민국의 인구통계와 지도 데이터를 이용해 단계 구분도를 만들어 보자. 'kormaps2014' 패키지를 이용하면 대한민국의 지역 통계 데이터와 지도 데이터를 사용할 수 있다.
# 패키지 준비
library(ggiraphExtra)
library(ggplot2)
install.packages("stringi")
install.packages("devtools")
devtools::install_github("cardiomoon/kormaps2014")
library(kormaps2014)
# 데이터 살펴보기
View(korpop1)
# 만약 한글이 깨져있을 시 이 코드를 추가 하자
# str(changeCode(korpop1))
## 결과 생략
library(dplyr)
korpop1 <- rename(korpop1, pop = 총인구_명, name = 행정구역별_읍면동)
korpop1$name <- iconv(korpop1, "UTF-8", "CP949")
# 지도 데이터 준비
str(changeCode(kormap1))
# 단계 구분도 만들기
ggChoropleth(data = korpop1, # 지도에 표현할 데이터
aes(fill = pop, # 색깔로 표현할 데이터
map_id = code, # 지역 기준 변수
tooltip = name), # 지도 위에 표시할 지역명
map = kormap1, # 지도 데이터
interactive = T) # 인터랙티브
주섬주섬
- 인터랙티브 단계 구분도는 뷰어 창에서 "Export > Save as Web Page.."를 클릭해 HTML 포맷으로 저장할 수 있다.
참고
반응형
'프로그래밍 언어 > R' 카테고리의 다른 글
R 12. 통계적 가설 검정 (0) | 2024.02.02 |
---|---|
R 11. 인터랙티브 그래프 (0) | 2024.02.02 |
R 9. 텍스트 마이닝 (0) | 2024.02.02 |
R 8. 데이터 분석하기 (0) | 2024.02.01 |
R 7. 그래프 만들기 (1) | 2024.01.31 |
댓글