단계 구분도(Choropleth Map)란?
- 지역별 통계치를 색깔의 차이로 표현한 지도
- 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해 가능
■ 미국 주별 강력 범죄율 단계 구분도 만들기
(1) 패키지 준비하기
- 단계 구분도는 ggiraphExtra 패키지를 이용
install.packages("ggiraphExtra")
library(ggiraphExtra)
(2) 미국 주별 범죄 데이터 준비하기
- R에 내장된 USArrests 데이터는 1973년 미국 주(state)별 강력 범죄율 정보를 담고 있음
(3) 새 데이터 프레임 생성, 변수 속성 변경하기
- USArrests 데이터는 지역명 변수가 따로 없고, 대신 행 이름(rownames)이 지역명으로 되어 있음
- tibble 패키지의 rownames_to_column()을 이용해 행 이름을 state 변수로 바꿔 새 데이터 프레임 생성
(참고: tibble 패키지는 dplyr을 설치하면 자동으로 설치됨)
- 뒤에서 사용할 지도 데이터의 지역명 변수는 모든 값이 소문자로 되어 있기 때문에 이와 동일하게 맞추기 위해 tolower()를 이용해 state 값을 소문자로 수정
library(tibble)
crime <- rownames_to_column(USArrests, var = "state")
crime$state <- tolower(crime$state)
str(crime)
(4) 미국 주 지도 데이터 준비하기
- 단계 구분도 생성 시 지역별 위도, 경도 정보가 있는 지도 데이터 필요
- R에 내장된 maps 패키지에 미국 주별 위경도를 나타낸 state 데이터 존재. ggplot2 패키지의 map_data()를 이용해 이 데이터를 데이터 프레임 형태로 호출
install.packages("maps")
install.packages("mapproj")
library(ggplot2)
states_map <- map_data("state")
str(states_map)
(참고: map_data를 사용하려면 maps, mapproj 이라는 패키지가 설치되어 있어야함)
(5) 단계 구분도 만들기
- ggiraphExtra 패키지의 ggChoropleth()를 이용해 단계 구분도 제작
- 살인 범죄 건수를 색깔로 표현하기 위해 aes의 fill에 Murder 변수 지정
- map_id에 지역 구분이 되는 state 변수 지정
- crime 데이터의 state 변수와 states_map 데이터의 region 변수는 미국 주 이름을 나타내는 동일한 값으로 구성되어 있음
(6) 인터랙티브 단계 구분도 만들기
- interactive 파라미터를 TRUE로 설정하면, 마우스 움직임에 반응하는 인터랙티브 단계 구분도 제작 가능
- 5번의 코드 제일 뒷부분에 interactive = T 만 추가하면 됨
- 뷰어창의 인터랙티브 단계 구분도는 [Export > Save as Web Page...]를 클릭하면 HTML 포맷으로 저장 가능
ggChoropleth(data = crime,
aes(fill = Murder,
map_id = state),
map = states_map,
interactive = T)
(출처; 가천대학교 컴퓨터공학과, 이영호 교수님)
(출처; 쉽게 배우는 R 데이터 분석, 김영우)
'Programming Language > R' 카테고리의 다른 글
13-1. t 검정 (두 집단의 평균 비교) (0) | 2019.06.01 |
---|---|
12. 인터랙티브 그래프 (0) | 2019.05.31 |
10. 텍스트 마이닝 (0) | 2019.05.30 |
08 그래프 만들기 (2) - 선 그래프, 상자 그림 (0) | 2019.05.29 |
08 그래프 만들기 (1) - 산점도, 막대 그래프 (0) | 2019.05.29 |