728x90
11 지도 시각화
11-1 미국 주별 강력 범죄율 단계 구분도 만들기
- 단계 구분도(Choropleth Map)
- 지역별 통계치를 색깔의 차이로 표현한 지도
- 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해할 수 있음
library(ggiraphExtra) str(USArrests) ## 'data.frame': 50 obs. of 4 variables: ## $ Murder : num 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ... ## $ Assault : int 236 263 294 190 276 204 110 238 335 211 ... ## $ UrbanPop: int 58 48 80 50 91 78 77 72 80 60 ... ## $ Rape : num 21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ... 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 library(tibble) crime <- rownames_to_column(USArrests, var = "state") crime$state <- tolower(crime$state) str(crime) ## 'data.frame': 50 obs. of 5 variables: ## $ state : chr "alabama" "alaska" "arizona" "arkansas" ... ## $ Murder : num 13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ... ## $ Assault : int 236 263 294 190 276 204 110 238 335 211 ... ## $ UrbanPop: int 58 48 80 50 91 78 77 72 80 60 ... ## $ Rape : num 21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ... library(ggplot2) states_map <- map_data("state") str(states_map) ## 'data.frame': 15537 obs. of 6 variables: ## $ long : num -87.5 -87.5 -87.5 -87.5 -87.6 ... ## $ lat : num 30.4 30.4 30.4 30.3 30.3 ... ## $ group : num 1 1 1 1 1 1 1 1 1 1 ... ## $ order : int 1 2 3 4 5 6 7 8 9 10 ... ## $ region : chr "alabama" "alabama" "alabama" "alabama" ... ## $ subregion: chr NA NA NA NA ... ggChoropleth(data = crime, # 지도에 표현할 데이터 aes(fill = Murder, # 색깔로 표현할 변수 map_id = state), # 지역 기준 변수 map = states_map) # 지도 데이터
11-2 대한민국 시도별 인구, 결핵 환자 수 단계 구분도 만들기
library(kormaps2014)
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 = 행정구역별_읍면동)
korpop1$name <- iconv(korpop1$name, "UTF-8", "CP949")
str(changeCode(kormap1))
## 'data.frame': 8831 obs. of 15 variables:
## $ id : chr "0" "0" "0" "0" ...
## $ long : chr "137.774352627938" "137.779270931415" "137.780545929866" "137.814504843261" ...
## $ lat : chr "50.6883045072662" "50.6899249663447" "50.6900586920365" "50.6937941360883" ...
## ...
ggChoropleth(data = korpop1, # 지도에 표현할 데이터
aes(fill = pop, # 색깔로 표현할 변수
map_id = code, # 지역 기준 변수
tooltip = name), # 지도 위에 표시할 지역명
map = kormap1, # 지도 데이터
interactive = T) # 인터랙티브
str(changeCode(tbc))
## 'data.frame': 255 obs. of 5 variables:
## $ name1 : chr "강원" "경기" "경남" "경북" ...
## $ code : chr "32" "31" "38" "37" ...
## $ name : chr "강원도" "경기도" "경상남도" "경상북도" ...
## $ year : chr "2001" "2001" "2001" "2001" ...
## $ NewPts: chr "1396" "4843" "1749" "2075" ...
tbc$name <- iconv(tbc$name, "UTF-8", "CP949")
ggChoropleth(data = tbc, # 지도에 표현할 데이터
aes(fill = NewPts, # 색깔로 표현할 변수
map_id = code, # 지역 기준 변수
tooltip = name), # 지도 위에 표시할 지역명
map = kormap1, # 지도 데이터
interactive = T) # 인터랙티브
출처 : Do it! 쉽게 배우는 R 데이터 분석
728x90
'Do it! > R' 카테고리의 다른 글
Do it! 쉽게 배우는 R 데이터 분석 - 인터랙티브 그래프 (0) | 2021.03.06 |
---|---|
Do it! 쉽게 배우는 R 데이터 분석 - 텍스트 마이닝 (0) | 2021.03.05 |
Do it! 쉽게 배우는 R 데이터 분석 - 그래프 만들기 (0) | 2021.02.27 |