인터랙티브 그래프(Interactive Graph)란?

- 마우스 움직임에 반응하며 실시간으로 형태가 변하는 그래프

 

** 참고

https://plot.ly/ggplot2/ 에 접속하면 plotly 패키지를 이용해 만든 인터랙티브 그래프들 직접 조작 가능

 

plotly

Plotly for ggplot2 is an interactive, browser-based charting library built on Plotly's open source javascript graphing library, plotly.js. It works entirely locally, through the HTML widgets framework.

plot.ly

 

 

■ plotly 패키지로 인터랙티브 그래프 만들기

(1) 패키지 준비하기

install.packages("plotly")
library(plotly)

 

(2) ggplot2로 그래프 만들기

- ggplot2로 만든 그래프를 plotly 패키지의 ggplotly()에 적용하면 인터랙티브 그래프가 생성됨

- 먼저 ggplot()을 이용해 그래프 제작 (mpg 데이터를 이용할 예정)

library(ggplot2)
p <- ggplot(data = mpg, aes(x = displ, y = hwy, col = drv)) + geom_point()

 

(3) 인터랙티브 그래프 만들기

ggplotly(p)

 

(4) HTML로 저장하기

- 뷰어 창에서 [Export > Save as Web Page...]를 클릭하면 인터랙티브 그래프를 HTML 포맷으로 저장 가능

인터랙티브 산점도 그래프.html
4.14MB

 

(5) 인터랙티브 막대 그래프 만들기

- 산점도 외에도 ggplot2 패키지로 만든 그래프는 ggplotly()를 이용해 인터랙티브 그래프로 제작 가능

- ggplot2 패키지에 내장된 diamonds 데이터(다이아몬드 5만여 개의 캐럿, 컷팅 방식, 가격 등의 속성을 담은 데이터)를 이용해 막대 그래프를 만든 후 ggplotly()에 적용해 인터랙티브 그래프 제작

 

 

 

 

■ dygraphs 패키지로 인터랙티브 시계열 그래프 만들기

- 인터랙티브 시계열 그래프를 이용하면 마우스로 시간 축을 움직이면서 시간에 따라 데이터가 어떻게 변하는지 자세히 살펴볼 수 있음

- ggplot2 패키지에 내장된 economics 데이터를 이용해 그래프 제작 (economics는 실업자 수, 저축률 등 1967~2015년 미국의 월별 경제 지표를 담은 데이터)

 

(1) dygraphs 패키지 설치 및 로드

install.packages("dygraphs")
library(dygraphs)

 

(2) economics 데이터 불러오기

economics <- ggplot2::economics
head(economics)

 

(3) 데이터 타입 변경하기

- ★ dygraphs 패키지를 이용해 인터랙티브 시계열 그래프를 만들려면 데이터가 시간 순서 속성을 지니는 xts 데이터 타입으로 되어 있어야 함

- xts()를 이용해 economics 데이터의 unemploy(실업자 수)를 xts 타입으로 변경

(참고: xts 패키지는 R에 내장되어 있으니 별도 설치 필요X)

library(xts)
eco <- xts(economics$unemploy, order.by = economics$date)
head(eco)

 

(4) 인터랙티브 시계열 그래프 만들기

- dygraphs 패키지의 dygraph()를 이용해 인터랙티브 시계열 그래프 제작

dygraph(eco)

선 위에 마우스 커서를 올리면 그래프 우측 상단에 날짜와 실업자 수가 표시됨

 

(5) 날짜 범위 선택 기능

- dygraph()에 %>%를 이용해 dyRangeSelector()를 추가하면 그래프 아래에 날짜 범위 선택 기능이 추가됨

- 버튼을 움직여 특정 기간만 선택 가능하고, 범위를 정한 뒤 좌우로 움직이면 시간에 따른 데이터의 변화를 볼 수 있음

dygraph(eco) %>% dyRangeSelector()

 

 

(6) 여러 값 표현하기

- 인터랙티브 시게열 그래프여러 값을 동시에 표현 가능함 (시간을 중심으로 나머지 데이터들 표현 가능)

- economics 데이터의 unemploy(실업자 수)와 psavert(저축률)를 그래프에 함께 표현 가능

# 저축률
eco_a <- xts(economics$psavert, order.by = economics$date)

# 실업자 수
eco_b <- xts(economics$unemploy/1000, odrer.by = economics$date)

 

(7)

eco2 <- cbind(eco_a, eco_b)                   # 데이터 결합
colnames(eco2) <- c("psavert", "unemploy")    # 변수명 바꾸기
head(eco2)

 

(8) dygraph()를 이용해 인터랙티브 시계열 그래프 제작

dygraph(eco2) %>% dyRangeSelector()

마우스 커서를 올리면 그래프 우측 상단에 두 변수의 값이 동시에 표시됨

 

 

 

 

** 참고한 자료

- Plotly ggplot2 Library: https://plot.ly/ggplot2/

 

plotly

Plotly for ggplot2 is an interactive, browser-based charting library built on Plotly's open source javascript graphing library, plotly.js. It works entirely locally, through the HTML widgets framework.

plot.ly

- dygraphs for R: http://rstudio.github.io/dygraphs

 

dygraphs for R

The dygraphs package is an R interface to the dygraphs JavaScript charting library. It provides rich facilities for charting time-series data in R, including: Automatically plots xts time series objects (or any object convertible to xts). Highly configurab

rstudio.github.io

 

(출처; 가천대학교 컴퓨터공학과, 이영호 교수님)

(출처; 쉽게 배우는 R 데이터 분석, 김영우)

+ Recent posts