R, Shiny & Dash R

Montréal (March 3-4), Boston (April 14-15), Washington D.C. (June 9-10), New York City (Nov 17-18)

Buy tickets

Workshop Overview

This workshop is highly interactive and attendees are expected to participate in hands-on exercises designed to reinforce the lecture material. To participate in the exercises, attendees should bring a laptop and make sure they can open this RStudio Cloud project before the workshop begins.

By the end of this workshop, you will be able to rapidly pose queries about data with interactive web graphics made using the R package plotly. You will also learn about useful tidyverse tools and concepts such as tidy data, data reshaping data, and the split-apply-combine technique. Though it would be beneficial to have some prior knowledge of R and ggplot2, we do not require it, and as such, we avoid assuming pre-existing knowledge as much as possible. Furthermore, this workshop is not designed to make you an R programming expert – it’s designed to get you doing powerful things quickly regardless of your experience with R or programming in general.

Carson Sievert

Carson Sievert is a freelance data scientist developing software and creating products that make data analysis more accessible, appealing, and efficient. During his Ph.D., he became the maintainer of the R package plotly and was recognized with the John Chambers Statistical Software Award. He is also author and maintainer of numerous other R packages including LDAvis, animint, pitchRx, and rdom.

Day 1 outline


An overview of plotly for R

  • Motivating examples and demos
  • How does it all fit together (htmlwidgets for R, plotly.js, SVG vs WebGL, etc)?
  • Mapping data to visuals (theory and practice)
  • Tips for learning more, debugging, and generally getting “un-stuck”

Data wrangling for visualization

  • Reshaping with tidyr, manipulation with dplyr
  • The data-plot-pipeline

Interactive maps made simple

  • scattermapbox
  • scattergeo
  • sf and geom_sf()

Day 2 outline


Animations via plot_ly() and ggplotly()

Linking multiple views via crosstalk

  • Highlighting via direct/indirect manipulation
  • Filtering via indirect manipulation

Getting the most of out plotly in shiny

  • Quick intro to shiny
  • Accessing/responding to plotly events in shiny
  • Efficient updates via plotlyProxy()

An intro to dasher (dash for R)

  • Why dasher?
  • Quick overview of dash components
  • dasher basics: layout & callbacks