interactivity
play

Interactivity Session 10 PMAP 8921: Data Visualization with R - PowerPoint PPT Presentation

Interactivity Session 10 PMAP 8921: Data Visualization with R Andrew Young School of Policy Studies May 2020 1 / 28 Plan for today Making interactive graphics Sharing content 2 / 28 Making interactive graphics 3 / 28 Three general


  1. Interactivity Session 10 PMAP 8921: Data Visualization with R Andrew Young School of Policy Studies May 2020 1 / 28

  2. Plan for today Making interactive graphics Sharing content 2 / 28

  3. Making interactive graphics 3 / 28

  4. Three general methods Single plots with plotly Easy! Dashboards with flexdashboard Slightly more complicated Complete interactive apps with Shiny Super complicated! 4 / 28

  5. Single plots with plotly Plotly is special software for creating interactive plots with JavaScript No knowledge of JavaScript needed! ggplotly() in the plotly R package translates between R and Javascript for you! 5 / 28

  6. Plotly continent library (gapminder) Africa 80 library (plotly) Americas Asia gapminder_2007 <- filter(gapminder, Europe year == 2007) 70 Oceania my_plot <- ggplot( data = gapminder_2007, lifeExp mapping = aes(x = gdpPercap, y = lifeExp, 60 color = continent)) + geom_point() + scale_x_log10() + theme_minimal() 50 ggplotly(my_plot) 40 300 1000 3000 10000 30000 gdpPercap 6 / 28

  7. Plotly tooltips continent my_plot <- ggplot( Africa 80 data = gapminder_2007, Americas mapping = aes(x = gdpPercap, y = lifeExp, Asia color = continent)) + Europe geom_point(aes(text = country)) + 70 Oceania scale_x_log10() + theme_minimal() lifeExp 60 interactive_plot <- ggplotly( my_plot, tooltip = "text" ) 50 interactive_plot 40 300 1000 3000 10000 30000 gdpPercap 7 / 28

  8. Works with most geoms! car_hist <- ggplot(mpg, 30 aes(x = hwy)) + geom_histogram(binwdith = 2, boundary = 0, color = "white") 20 count ggplotly(car_hist) 10 0 10 20 30 40 hwy 8 / 28

  9. Save as HTML Save a self-contained HTML version of it with saveWidget() in the htmlwidgets R package # This is like ggsave, but for interactive HTML plots htmlwidgets::saveWidget(interactive_plot, "fancy_plot.html") 9 / 28

  10. Fully documented The documentation for ggplot2 + plotly is full of examples of how to customize everything Rely on that ↑ + Google to make really fancy (and easy!) interactive plots 10 / 28

  11. Three general methods Single plots with plotly Easy! Dashboards with flexdashboard Slightly more complicated 11 / 28

  12. Dashboards with flexdashboard Use basic R Markdown to build a dashboard! 12 / 28

  13. Dashboards with flexdashboard Make any kind of block arrangement 13 / 28

  14. Dashboards with flexdashboard Add other elements like text and gauges 14 / 28

  15. Example dashboards ggplot2 geoms 15 / 28

  16. Example dashboards NBA scoring 16 / 28

  17. Example dashboards Utah's COVID-19 dashboard 17 / 28

  18. Outstanding documentation The documentation for flexdashboard is full of examples and details of everything you can do Rely on that ↑ + Google to make really fancy (and easy!) dashboards! 18 / 28

  19. Three general methods Single plots with plotly Easy! Dashboards with flexdashboard Slightly more complicated Complete interactive apps with Shiny Super complicated! 19 / 28

  20. Shiny Shiny is a complete web application framework for interactive statistics It's super complex and hard for beginners I've never made a standalone Shiny app! (And I don't plan on trying anytime soon) 20 / 28

  21. Lots of resources to help start RStudio has a whole website for helping you get started Getting started with Shiny 21 / 28

  22. Really neat examples! iSEE (interactive SummarizedExperiment Explorer) 22 / 28

  23. Really neat examples! COVID-19 tracker 23 / 28

  24. Really neat examples! Living in the LEGO world 24 / 28

  25. flexdashboard + Shiny You can use reactive Shiny things in flexdashboards without building a complete Shiny app! I have done this 25 / 28

  26. Sharing content 26 / 28

  27. What do you do after you knit? When knitting to PDF or Word, you make a standalone file E-mail it, message it, Slack it, whatever When knitting to HTML, you make a website By default it's a standalone .html file with graphics embedded, so you can still e-mail it, etc., but it can get huge if there are lots of images Standalone files won't work well if there's anything interactive You can also post it online! 27 / 28

  28. Places to put HTML documents RPubs for knitted HTML documents Built in to RStudio; works with ggplotly! RPubs or shinyapps.io for flexdashboards Your own web server for anything, if you have one 28 / 28

Recommend


More recommend