[R 프로그램] 인터랙티브 그래프(1)_미국 주별 강력 범죄율 인터랙티브 지도 시각화 - ggiraphExtra 패키지
ggiraphExtra 패키지 준비
단계구분도는 ggiraphExtra 패키지를 이용해 만들 수 있는데, 이 패키지를 이용하는 데에 앞서 mapproj 패키지를 먼저 설치해주어야 한다. 위와 같이 mapproj 패키지와 ggiraphExtra 패키지를 설치한 후, ggiraphExtra 패키지를 불러온다.
데이터 준비
R에 내장된 "USArrests" 데이터를 사용해보겠다. USArrests 데이터는 1973년 미국 주(state)별 강력 범죄율 정보를 담고 있다.
str() 을 통해 데이터 변수의 정보를 살펴보았다.
row: 50, column: 4
head()를 통해 데이터의 일부를 살펴보았다.
지역병 변수 생성
USArrests 데이터는 지역명 변수가 따로 없고. 대신 행 이름(rownames)이 지역명으로 되어있다.
tibble 패키지의 rownames_to_colum()을 이용해 행 이름을 state로 바꾸어 새 데이터 프레임을 만들었다.
뒤에서 사용할 지도 데이터의 지역명 변수는 모든 값이 소문자로 되어있는데, 지도 데이터와 동일하게 변수형태를 통일하기 위해 tolower()를 이용해 state의 값을 소문자로 수정하였다.
* tibble 패키지는 dplyr 패키지를 설치하면 자동으로 함께 설치된다
state변수가 추가되었다.
미국 주 지도 데이터
단계 구분도를 만드려면 지역별 위도, 경도가 있는 지도 데이터가 필요하다.
미국 주별 위경도 데이터가 들어있는 maps 패키지를 설피하고, ggplot2 패키지의 map_data()를 이용해 해당 데이터를 데이터 프레임 형태로 불러왔다.
단계 구분도 만들기
살인 범죄 건수를 색깔로 표현하기 위해 aes의 fill에 Murder변수를 지정하고,
map_id에 지역 구분 기준이 되는 state 변수를 지정한다.
crime 데이터의 state변수와 states_map 데이터의 region 변수는 미국 주 이름을 나타내는 동일한 값으로 구성되어 있다.
이 변수들이 지도상 지역을 구분하는 기준이 된다.
위와 같은 지도가 시각화된다.
인터랙티브 단계 구분도 만들기
interactive 파라미터를 True로 설정하면, 마우스 움직임에 반응하는 인터랙티브 단계 구분도를 만들 수 있다.
지도 위에 마우스 커서를 올려 놓으면 해당 지역의 값이 표시된다.
Viewer창의 Export > Save as Web Page를 클릭하면 HTML 포맷으로 저장할 수 있다.
저장된 HTML 파일을 웹 브라우저에서 열면, 마우스 휠을 움직여 지도의 특정 영역을 확대 또는 축소할 수 있다.
※ 위 포스팅은 「Do it! 쉽게 배우는 R 데이터 분석(이지스리퍼블리싱)」 도서를 바탕으로 작성되었습니다.