본문 바로가기
Programming/R

[R] 반응형 그래프 만들기 plotly, dygraphs

by 코딩하는 금융인 2021. 6. 29.

R 데이터 분석 관련하여 책을 보다가 시각화에 대한 흥미로운 내용이 있어 공유합니다.

 

보통 R에서 시각화를 할 때는 'ggplot2' 패키지를 주로 사용하는데 오늘은 기존의 시각화 그래프와는 다른 반응형 그래프 패키지 'plotly'와 'dygraphs'에 대해 소개해드리겠습니다.


반응형 그래프 (interactive graph)란?

- 마우스 움직임에 따라 반응하며 실시간 형태가 변하거나 세부 정보를 보여주는 그래프

반응형 그래프 만들기

Sample data : gapminder (국가별 경제 수준과 평균 수명 동향)

 

# R query

# 패키지 다운로드
install.packages('plotly')
library(plotly)
library(ggplot2)
library(dplyr)

# 데이터 다운로드
install.packages("gapminder")
library(gapminder)

# 1977년대 대륙, 인구별 gdp 상승 및 평균수명
p <- gapminder %>%
  filter(year==1977) %>%
  ggplot( aes(gdpPercap, lifeExp, size = pop, color=continent)) +
  geom_point() +
  theme_bw() # 배경 흰색
ggplotly(p)

 

 

# interactive graph

'

시계열 반응형 그래프 만들기

Sample data : lungDeaths (연도별 남녀 폐암 사망자수)

 

# R query

# 패키지 다운로드
install.packages("dygraphs")
library(dygraphs)

# 연도별 남녀 폐암 사망자수 데이터 
lungDeaths <- cbind(mdeaths, fdeaths)
dygraph(lungDeaths)

# 범위 설정 추가
dygraph(lungDeaths) %>% dyRangeSelector()

# 시계열 interactive graph

 

# 그래프 옵션 추가하기

dygraph(lungDeaths) %>%
  dySeries("mdeaths", label = "Male") %>% # Label 표시
  dySeries("fdeaths", label = "Female") %>%
  dyOptions(stackedGraph = TRUE) %>% # 색 채우기
  dyRangeSelector(height = 20) # height 설정

 

# 시계열 예측 그래프

hw <- HoltWinters(ldeaths) # 예측모델 Holt - Winters
predicted <- predict(hw, n.ahead = 72, prediction.interval = TRUE) # 예측값

# 예측 그래프
dygraph(predicted, main = "Predicted Lung Deaths (UK)") %>%
  dyAxis("x", drawGrid = FALSE) %>%
  dySeries(c("lwr", "fit", "upr"), label = "Deaths") %>%
  dyOptions(colors = RColorBrewer::brewer.pal(3, "Set1"))


이상 간단한 인터랙티브 그래프에 대한 설명과 예시였고 더 자세한 공부를 원하신다면 아래의 책이나 rstudio github에서 확인하실 수 있습니다.

 

References
반응형

댓글