지도 시각화

미국 주별 강력 범죄율 단계 구분도 만들기

지역별 통계치를 색깔의 차이로 표현한 지도를 단계구분도라고 한다
단계 구분도를 보면 인구나 소득 같은 특성이 지역별로 얼마나 다른지 쉽게 이해할 수 있다

미국 주별 강력 범죄율 단계 구분도 만들기

  1. 패키지 - ggiraphExtra
  2. 미국 주별 범죄 데이터 - USArrests
     > 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
    


    지역명 변수가 따로 없고, 행이름이 지역명으로 되어있기 때문에 행이름을 state 변수로 바꿔서 새 프레임을 만들어야 한다

     library(tibble)
     crime <- rownames_to_column(USArrests, var="state")
     crime$state <- tolower(crime$state)
    
  3. 미국 주 지도 데이터 준비
    단계 구분도를 만들려면 지역별 위도, 경도 정보가 있는 지도 데이터가 필요하다.
    • maps 패키지에 state 데이터 사용
    • ggplot2map_date()를 이용해 데이터 프레임 형태로 불러온다
       install.packages("maps")
       library(ggplot2)
       states_map <- map_data("state")
      
  4. 단계 구분도 만들기
    • ggiraphExtraggChoropleth()
    • mapproj패키지 필요
       install.packages("mapproj")
       ggChoropleth(data = crime,
                aes(fill = Murder,
                    map_id = state),
                    map = states_map)
      

      chp11-1

  5. 인터랙티브 단계 구분도 만들기
    • interactive파라미터를 TRUE로 설정하면 마우스 움직임에 반응하는 인터랙티브 단계 구분도를 만들 수 있다
       install.packages("mapproj")
       ggChoropleth(data = crime,
                aes(fill = Murder,
                    map_id = state),
                    map = states_map,
                    interactive = T)
      

대한민국 시도별 인구, 결핵 환자 수 단계 구분도 만들기

대한민국 시도별 인구 단계 구분도 만들기

  1. 패키지 준비
    • stringi : kormaps2014 패키지 이용에 필요
    • devtools : install_github()를 이용해 패키지 개발자가 깃 허브에 공유한 패키지를 설치할 수 있다
       install.packages("stringi")
       install.packages("devtools")
       devtools::install_github("cardiomoon/kormaps2014")
       library(kormaps2014)
      
  2. 대한민국 시도별 인구 데이터 준비
    • korpop1 : 2015년 센서스 데이터(시도별)
    • korpop1데이터의 인코딩이 UTF-8 이기 때문에 changeCode()를 이용해 깨지지 않고 출력된다
     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" ...
    
  3. 변수명을 영문자로 바꿔준다
     library(dplyr)
     korpop1 <- rename(korpop1,
                     pop = 총인구_명,
                     name = 행정구역별_읍면동)
    
  4. 대한민국 시도 지도 데이터 준비
    • str(changeCode(kormap1))
  5. 단계 구분도 만들기
     ggChoropleth(data = korpop1,        # 지도에 표현할 데이터
                 aes(fill = pop,         # 색깔로 표현할 변수
                     map_id = code,      # 지역 기준 변수
                     tooltip = name),    # 지도 위에 표시할 지역명
                 map = kormap1,          # 지도 데이터
                 interactive = T)        # 인터랙티브
    

    chp11-2

대한민국 시도별 결핵 환자 수 단계 구분도 만들기


kormaps2014에 지역별 결핵 환자 수에 대한 정보를 담고 있는 tbc데이터가 있다

  • tbcNewPts변수를 이용해 시도별 결핵 환자 수 단계 구분도를 만들 수 있다
      ggChoropleth(data = tbc,
                  aes(fill = NewPts,
                      map_id = code,
                      tooltip = name),
                  map = kormap1,
                  interactive = T)
    

카테고리:

업데이트: