참고 : Do it! 쉽게 배우는 R 데이터분석
단계 구분도
- 지역별 통계치를 색깔의 차이로 표현한 지도
- 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해할 수 있다
미국 주별 강력 범죄율 데이터를 이용해 단계 구분도를 만들어보자
패키지 준비
install.packages("mapproj")
install.packages("ggiraphExtra")
library(mapproj)
library(ggiraphExtra)
library(tidyverse)
단계 구분도를 그리기 위해선 ggiraphExtra 패키지를 설치해야한다
ggiraphExtra 패키지를 이용하기 위해선 mapproj 패키지가 있어야한다
설치 후 library를 통해 불러와 줬다
미국 주별 범죄 데이터 준비
head(USArrests)
#현재 데이터의 행 이름이 주 이름
# 주 이름을 열로 변환 : rownames_to_column
crime <- rownames_to_column(USArrests, var = "state")
head(crime)
R에 내장된 USArrests 데이터는 1973년 미국 주별 강력 범죄율 정보를 담고 있다
USArrests 데이터는 지역명 변수가 없고, 행 이름이 주 이름이기 때문에
주 이름을 열로 변환해서 state 변수로 바꿔 crime이라는 새 데이터 프레임을 만들었다
지도 데이터 준비
단계 구분도를 만들려면 지역별 위도, 경도 정보가 있는 지도 데이터가 필요하다
ggplot2의 map_data를 통해 미국 주별 위경도 데이터를 state_map에 저장했다
# install.packages("maps")
library(ggplot2)
state_map <- map_data("state')
head(state_map)
안된다면 미국 주별 위경도 데이터가 들어있는 maps 패키지를 설치해보자
지도 시각화
ggChoropleth(data = "지도에 표현할 데이터",
aes(fill = "색깔로 표현할 변수",
map_id = "지역 기준 변수"),
map = "지도 데이터")
1. 살인 범죄 건수 표현하기
data = crime, aes(fill = Murder(살인범죄 건수), map_id = state), map = state_map
# 살인
ggChoropleth(data = crime,
aes(fill = Murder, map_id = state),
map = state_map)
색이 진할 수록 범죄 건수가 많다는 것을 의미한다
interactive 파라미터를 이용하면 마우스 움직임에 반응하는 인터랙티브 단계 구분도를 만들 수 있다
# 인터랙티브 시각화 추가
ggChoropleth(data = crime,
aes(fill = Murder, map_id = state),
map = state_map,
interactive = T)
2. 폭행 건수 표현하기
# 폭행
ggChoropleth(data = crime,
aes(fill = Assault, map_id = state),
map = state_map)
# 인터랙티브 시각화 추가
ggChoropleth(data = crime,
aes(fill = Assault, map_id = state),
map = state_map,
interactive = T)
florida는 폭행 건수가 335로 자주 폭행사건이 일어난다고 볼 수 있다
3. 성범죄
# 성범죄
ggChoropleth(data = crime,
aes(fill = Rape, map_id = state),
map = state_map)
# 인터랙티브 시각화 추가
ggChoropleth(data = crime,
aes(fill = Rape, map_id = state),
map = state_map,
interactive = T)
성범죄는 캘리포니아에서 많이 일어났다는 걸 볼 수 있다
다음엔 대한민국의 지도를 그려보쟈
'R' 카테고리의 다른 글
R - 지도시각화(kormaps2014) : 대한민국 시도별 인구, 결핵 환자 수 단계 구분도 (0) | 2024.07.31 |
---|---|
R - 그래프 살펴보기(텍스트 마이닝) (0) | 2024.07.29 |
R - 그래프 살펴보기(ggplot2 - 선그래프, 상자그림) (1) | 2024.07.27 |
R - 그래프 살펴보기(ggplot2 - 산점도, 막대그래프) (2) | 2024.07.13 |
R - 데이터 정체 [결측치, 이상치] (0) | 2024.07.12 |