R 사용자는 모든 데이터 시각화를 위해 ggplot2패키지를 좋아합니다. 일관된 구문, 유용한 기본 설정 및 유연성으로 고품질의 인물을 만드는 환상적인 도구입니다. ggplot2는 훌륭하지만 데이터 과학자의 도구 상자에는 plotly 라는 적합한 다른 데이터 도구가 있습니다.

plotly는  plotly.js에 대한 높은 레벨 인터페이스로 d3.js를 기반으로하여 사용하기 쉬운 UI를 제공하여 매끄러운 D3 대화식 그래픽을 생성합니다. 이 대화식 그래프를 통해 사용자는 플롯을 확대 / 축소하고 점을 가리켜 추가 정보를 얻고 점의 그룹으로 필터링하는 등의 작업을 수행 할 수 있습니다. 이러한 대화식 구성 요소는 매력적인 사용자 경험을 제공하고 정보를 고정 숫자로는 불가능한 방식으로 표시 할 수있게합니다.

환상적인 htmlwidgets

짐작 하시겠지만 plotly.js의 “.js”는 JavaScript의 약자입니다. 자바 스크립트는 인터넷 대화식 웹 페이지의 대부분을 실행하는 프로그래밍 언어입니다. 웹 페이지를 대화 식으로 만들기 위해 JavaScript 코드는 사용자의 웹 브라우저에서 실행되는 HTML에 포함됩니다. 사용자가 페이지와 상호 작용할 때 JavaScript는 새로운 HTML을 렌더링하여 우리가 찾고있는 대화식 환경을 제공합니다. htmlwidgets는 JavaScript 라이브러리에 대한 R 바인딩 만들기를 허용하는 프레임 워크입니다. 이러한 JavaScript 시각화는 R Markdown 문서 또는 shiny 앱에 포함될 수 있습니다.

다음은 R에서 JavaScript 바인딩의 몇 가지 예입니다.

플롯 객체를 초기화하는 두 가지 주요 접근법이 있습니다 : ggplotly()ggplot2 객체를 변형하거나 plot_ly() 함수로 직접 시각적 요소 매핑을 설정합니다.

ggplotly

ggplotly()는 기존 ggplot2 객체를 가져 와서 대화 형 플롯 그래픽으로 변환합니다. 이렇게하면 이미 익숙한 ggplot2 구문을 사용하면서 대화식 플롯을 쉽게 만들 수 있습니다. 또한 ggplotly()를 사용하면 쉽게 plotly으로 복제되지 않는 ggplot2 기능을 사용할 수 있으며 다양한 ggplot2 확장 패키지를 이용할 수 있습니다.

ggplot2mpg 데이터 세트를 사용한 예제를 살펴 보겠습니다.

ggplot2 객체를 저장 한 후 plotly 하는 유일한 단계는 해당 객체에서 ggplotly()를 호출하는 것입니다.

두 가지의 차이점은 plotly가 상호 작용한다는 것입니다. 직접 코딩으로 확인해 보십시요. 시도 할 상호 작용 기능 중에는 정확한 x, y 값을보기 위해 한 지점 위로 마우스를 이동하거나, 영역을 선택 (클릭 + 드래그)하여 확대하거나, 범례에서 해당 이름을 클릭하여 특정 그룹에 하위 집합을 지정하는 방법이 있습니다.

plot_ly

plot_ly()ggplot2ggplot()과 비슷한 데이터 프레임에서 플롯을 초기화하는 기본 플롯 명령입니다.

 

플롯 유형을 지정하지는 않았지만 기본적으로 산점도가 사용되었습니다. 플롯 유형은 추적 유형을 설정하여 지정됩니다. scatter 트레이스 유형은 많은 하위 레벨 기하 (예 : 점, 선 및 텍스트)의 기초가되므로 모드를 지정해야합니다. 포인트가있는 분산형 플롯을 만들려면 모드는 markers로 설정되지만 추가 scatter 모드에는 linespathssegmentsribbonspolygons 및 text가 포함됩니다.

plotly 함수는 plotly 객체를 입력으로 사용하여 수정 된 플롯 객체를 반환하므로 파이프(%> %)와 완벽하게 작동합니다.

add_markers

 

add_trace()를 사용하여 유형과 모드를 지정하는 대신, add_markers() 라는 편리한 함수를 사용할 수 있습니다.

다른 플롯 유형을 만드는 것은 해당 add_*() 함수를 사용한것과 같이 유사하게 쉽습니다. 트레이스의 전체 목록은 다음 링크(https://rdrr.io/cran/plotly/man/add_trace.html)를 참조하십시오.

 

참조: Introduction to Interactive Graphics in R with plotly

(Visited 100 times, 1 visits today)