7.2 htmlwidgets

ggplot2는 플로팅하는데 필요한 대부분의 기능을 제공하지만, 분석과 상호 작용하거나 매우 전문화된 그래픽을 추가하고 싶을 때가 있다. htmlwidget은 다음과 같은 용도로 사용할 수있는 패키지 모음으로, R 분석에 다음 수준의 시각화를 추가하는데 사용될 수 있다.

htmlwidgets는 원래 웹 사이트 용으로 개발된 오픈 소스 자바 스크립트 위젯을 통합할 수있는 기능을 제공한다. 사용 가능한 전체 위젯 목록을 보려면 웹 사이트를 참고하기 바란다. 이러한 위젯 중 상당수는 시각화하려는 문제 유형에 매우 구체적이다. 지도, 시계열, 네트워크 그래프 및 일부 D3 그래픽에 대한 위젯을 찾을 수 있다.

하나의 htmlwidget, plotly를 사용하여 마지막 섹션에서 만든 플롯을 웹 지원 대화형 위젯으로 바꿀 수 있다. plotlygglot2와 함께 작동하고 실제로 ggplo2를 다음 수준으로 가져 가기 때문에 흥미롭다. 다음은 plotly를 사용하여 ggplot2 플롯에 상호 작용을 추가하는데 필요한 것들이다.

library(plotly)
i_plot <- expectancy %>%
             filter(race == "All Races") %>%
             ggplot(aes(year, life_expectancy)) +
                    geom_line(aes(color = sex))
ggplotly(i_plot)

이 코드는 ggplot2에서했던 것과 매우 유사하다. 그러나 이번에는 결과를 개체에 할당하고 해당 개체를 매개 변수로 ggplotly에 사용하여 그림 7.5에서 볼 수있는 대화형 플롯을 만든다.

팝업이 있는 Plotly HTML 위젯

그림 7.5: 팝업이 있는 Plotly HTML 위젯

이제 이 플롯에는 세부 정보 팝업과 상단에 탐색 그림이 있는 도구 모음이 포함된다. 이후 장에서 일관된 보고서와 대시 보드를 작성하는 방법을 학슬할 때 이와 같은 위젯을 포함하여 사용자를 위한 풍부한 대화형 환경을 만들 수 있다.

계속 진행하기 전에 DT 패키지의 Datatables 구성 요소를 살펴보자. Datatables는 데이터 세트에 대한 검색 가능한 HTML 프레젠테이션을 생성하는 매우 유용한 대화형 HTML 위젯이다. 예를 들어 데이터 세트의 검색 가능한 버전을 사용자에게 직접 제공하려면 다음과 같이 하면된다.

library(DT)
datatable(expectancy, options = list(pageLength = 10))

그러면 데이터로 채워진 검색 가능한 대화형 테이블로 그림 7.6과 같은 위젯이 생성된다.

데이터 테이블 위젯

그림 7.6: 데이터 테이블 위젯