마우스 움직임에 반응해 실시간으로 형태가 변하는 인터렉티브 그래프를 만드는 방법을 알아봅시다.
인터렉티브 그래프란, 마우스 움직임에 반응하여 실시간으로 형태가 변하는 그래프를 말합니다. 인터렉티브 그래프를 만들면 그래프를 자유롭게 조작하면서 관심 있는 부분을 자세히 살펴볼 수 있습니다. 그래프를 HTML 포맷으로 저장하면, 일반 사용자들도 웹 브라우저를 이용해 그래프를 조작할 수 있습니다.
install.packages("plotly")
library(plotly)
library(ggplot2)
p <- ggplot(data = mpg, aes(x = displ, y = hwy, col = drv)) + geom_point()
print(p)
ggplotly(p)
마우스를 드래그하면 특정 영역을 확대할 수 있습니다. 그래프 위에서 더블클릭하면 다시 원래대로 되돌아옵니다.
뷰어 창에서 [Export -> Save as Web Page…]를 클릭하면 인터렉티브 그래프를 HTML 포맷으로 저장할 수 있습니다. HTML 파일은 웹 브라우저에서 열어볼 수 있기 때문에 R을 사용하지 않는 사용자들도 그래프를 볼 수 있습니다.
p <- ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar(position = "dodge")
ggplotly(p)
install.packages("dygraphs")
library(dygraphs)
economics <- ggplot2::economics
head(economics)
## # A tibble: 6 × 6
## date pce pop psavert uempmed unemploy
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1967-07-01 507. 198712 12.6 4.5 2944
## 2 1967-08-01 510. 198911 12.6 4.7 2945
## 3 1967-09-01 516. 199113 11.9 4.6 2958
## 4 1967-10-01 512. 199311 12.9 4.9 3143
## 5 1967-11-01 517. 199498 12.8 4.7 3066
## 6 1967-12-01 525. 199657 11.8 4.8 3018
xts 데이터 타입으로 변경library(xts)
eco <- xts(economics$unemploy, order.by = economics$date)
head(eco)
## [,1]
## 1967-07-01 2944
## 1967-08-01 2945
## 1967-09-01 2958
## 1967-10-01 3143
## 1967-11-01 3066
## 1967-12-01 3018
# 그래프 생성
dygraph(eco)
dygraph(eco) %>% dyRangeSelector()
# 저축률
eco_a <- xts(economics$psavert, order.by = economics$date)
# 실업자 수
eco_b <- xts(economics$unemploy/1000, order.by = economics$date)
eco2 <- cbind(eco_a, eco_b) # 데이터 결합
colnames(eco2) <- c("psavert", "unemploy") # 변수명 바꾸기
head(eco2)
## psavert unemploy
## 1967-07-01 12.6 2.944
## 1967-08-01 12.6 2.945
## 1967-09-01 11.9 2.958
## 1967-10-01 12.9 3.143
## 1967-11-01 12.8 3.066
## 1967-12-01 11.8 3.018
dygraph(eco2) %>% dyRangeSelector()