HTML Widgets for R

The htmlwidgets package provides a framework for easily creating R bindings to JavaScript libraries. Widgets created using the framework can be:

  • Used at the R console for data analysis just like conventional R plots (via RStudio Viewer).
  • Seamlessly embedded within R Markdown documents and Shiny web applications.
  • Saved as standalone web pages for ad-hoc sharing via email, Dropbox, etc.

There are already several R packages based on htmlwidgets, including:

  • leaflet – Interactive maps with OpenStreetMap
  • dygraphs — Interactive time series visualization
  • networkD3 — Network visualization with D3
  • sparkline — Small inline charts
  • DT — Tabular data via DataTables
  • rthreejs – Interactive 3D graphics

The package was created in collaboration by Ramnath Vaidyanathan, Joe Cheng, JJ Allaire, Yihui Xie, and Kenton Russell. We’ve all spent countless hours building bindings between R and the web, and were motivated to create a framework that made this as easy as possible for all R developers.

Getting Started

If you know R and a bit of JavaScript it’s very straightforward to create your own widgets. You can install the htmlwidgets package from CRAN:

install.packages("htmlwidgets")

You can alternatively install the development version of htmlwidgets from GitHub as follows:

devtools::install_github('ramnathv/htmlwidgets')

There are several articles on the htmlwidgets website that will help you get you off the ground quickly and take advantage of all of the capabilities of the framework: