인터랙티브 그래프

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

  • 인터랙티브 그래프 : 마우스 움직임에 반응하며 실시간으로 형태가 변하는 그래프
  • 그래프를 자유롭게 조작하면서 관심 있는 부분을 자세히 살펴볼 수 있다
  • 그래프를 HTML 포맷으로 저장하면 일반 사용자들도 웹 브라우저를 이용해 그래프를 조작할 수 있다

인터랙티브 그래프 만들기

  1. 패키지 준비

     install.pakages("plotly")
     library(plotly)
    
  2. ggplot2로 그래프 만들기
    ggplot2로 만든 그래프를 plotly 패키지의 ggploty()에 적용하면 인터랙티브 그래프가 만들어진다.

    • ggplot()을 이용하 그래프를 만든다.

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


      mpg데이터를 이용해 x축에 배기량(displ), y축에 고속도로연비(hwy)를 지정해 산점도를 만든다.
      산점도의 점을 구동방식(drv)별로 다른 색으로 표현하도록 col=drv 사용한다.

    • 위 그래프를 ggploty()에 적용해 인터랙티브 그래프를 만든다.

        ggplotly(p)
      


      chp12-1

      • 산점도의 점 위에 커서를 올리면 값이 나타난다.
      • 마우스를 드래그하면 특정 영역을 확대할 수 있다.
      • 더블 클릭하면 다시 원래대로 되돌아온다.
        • 똑같은 방식으로 다른 그래프 또한 인터랙티브 그래프로 만들 수 있다.
        • 만든 인터랙티브 그래프를 HTML포맷으로 저장하려면 뷰어창에서 Export > Save as Web Page를 클릭하여 저장할 수 있다.

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

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

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

  1. 패키지 준비
    • dygraphs 패키지로 인터랙티브 시계열 그래프를 만들 수 있다.
    • ggplot2economics데이터 이용

        install.packages("dygraphs")
        library(dygraphs)
      
        economics <- ggplot2::economics    
      
  2. economics데이터를 xts타입으로 변경
    • gygraphs를 이용해 인터랙티브 시계열 그래프를 만들려면 데이터가 xts데이터 타입이어야 한다.
    • xts는 시간 순서 속성을 지니는 데이터 타입
    • xts()를 이용해 unemploy(실업자수)를 xts타입으로 변경한다.
       library(xts)
       eco <- xts(economics$unemploy, order.by = economics$date)
      
  3. 인터랙티브 시계열 그래프 만들기
     dygraph(eco)
    

    chp12-2

    • 커서를 올리면 그래프 오른쪽 위에 날짜, 실업자 수가 표시된다.
    • 그래그하면 특정 기간만 확대할 수 있고, 더블클릭하면 원래대로 돌아온다.
  4. 날짜 범위 선택 기능
     dygraph(eco) %>% dyRangeSelector()
    

    chp12-3

    • 버튼을 움직여 특정 기간만 선택할 수 있다.
    • 범위를 정한 뒤 좌우로 움직이면 시간에 따라 데이터가 어떻게 변하는지 알 수 있다.
  5. 여러 값 표현하기
    • unemploy(실업자 수)와 psavert(저축률)을 한번에 표현해 보자
      1. unemploy, psavert변수를 xts타입으로 바꾼다.
      • unemploy 변수는 1000명 단위로 되어있기 때문에 psavert와 비교하기 쉽도록 1000으로 나누어서 단위를 수정해준다.
        eco_a <- xts(economics$psavert, order.by = economics$date)
        eco_b <- xts(economics$unemploy/1000, order.by = economics$date)
      
    1. 두 데이터를 cbind()를 이용해 가로로 결합한다
      • 변수명도 알아보기 쉽도록 변경해준다.
         eco2 <- cbind(eco_a, eco_b)
         colnames(eco2) <- c("psavert", "unemploy")
         head(eco2)
        
        
                 psavert unemploy
         1967-07-01    12.5    2.944
         1967-08-01    12.5    2.945
         1967-09-01    11.7    2.958
         1967-10-01    12.5    3.143
         1967-11-01    12.5    3.066
         1967-12-01    12.1    3.018
        
    2. dygraph()를 이용해 그래프를 만든다 chp12-4

카테고리:

업데이트: