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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend