1st Edition
Interactive Web-Based Data Visualization with R, plotly, and shiny
The richly illustrated Interactive Web-Based Data Visualization with R, plotly, and shiny focuses on the process of programming interactive web graphics for multidimensional data analysis. It is written for the data analyst who wants to leverage the capabilities of interactive web graphics without having to learn web programming. Through many R code examples, you will learn how to tap the extensive functionality of these tools to enhance the presentation and exploration of data. By mastering these concepts and tools, you will impress your colleagues with your ability to quickly generate more informative, engaging, and reproducible interactive graphics using free and open source software that you can share over email, export to pdf, and more.
Key Features:
- Convert static ggplot2 graphics to an interactive web-based form
- Link, animate, and arrange multiple plots in standalone HTML from R
- Embed, modify, and respond to plotly graphics in a shiny app
- Learn best practices for visualizing continuous, discrete, and multivariate data
- Learn numerous ways to visualize geo-spatial data
This book makes heavy use of plotly for graphical rendering, but you will also learn about other R packages that support different phases of a data science workflow, such as tidyr, dplyr, and tidyverse. Along the way, you will gain insight into best practices for visualization of high-dimensional data, statistical graphics, and graphical perception. The printed book is complemented by an interactive website where readers can view movies demonstrating the examples and interact with graphics.
Introduction
Why interactive web graphics from R?
What you will learn
What you won’t learn (much of)
Web technologies
djs
ggplot
Graphical data analysis
Data visualization best practices
Prerequisites
Run code examples
Getting help and learning more
Acknowledgements
Colophon
I Creating views
Overview
Intro to plot_ly()
Intro to plotlyjs
Intro to ggplotly()
Scattered foundations
Markers
Alpha blending
Colors
Symbols
Stroke and span
Size
Dotplots & error bars
Lines
Linetypes
Segments
Density plots
Parallel Coordinates
Polygons
Ribbons
Maps
Integrated maps
Overview
Choropleths
Custom maps
Simple features (sf)
Cartograms
Bars & histograms
Multiple numeric distributions
Multiple discrete distributions
Boxplots
D frequencies
Rectangular binning in plotlyjs
Rectangular binning in R
Categorical axes
D charts
Markers
Paths
Lines
Axes
Surfaces
II Publishing views
Introduction
Saving and embedding HTML
Exporting static images
With code
From a browser
Sizing exports
Editing views for publishing
III Combining multiple views
Arranging views
Arranging plotly objects
Recursive subplots
Other approaches & applications
Arranging htmlwidgets
Flexdashboard
Bootstrap grid layout
CSS flexbox
Arranging many views
Animating views
Animation API
Animation support
IV Linking multiple views
Introduction
Client-side linking
Graphical queries
Highlight versus filter events
Linking animated views
Examples
Querying facetted charts
Statistical queries
Statistical queries with ggplotly()
Geo-spatial queries
Linking with other htmlwidgets
Generalized pairs plots
vi Contents
Querying diagnostic plots
Limitations
Server-side linking with shiny
Embedding plotly in shiny
Your first shiny app
Hiding and redrawing on resize
Leveraging plotly input events
Dragging events
D events
Edit events
Relayout vs restyle events
Scoping events
Event priority
Handling discrete axes
Accumulating and managing event data
Improving performance
Partial plotly updates
Partial update examples
Advanced applications
Drill-down
Cross-filter
A draggable brush
Discussion
V Event handling in JavaScript
Introduction
Working with JSON
Assignment, subsetting, and iteration
Mapping R to JSON
Adding custom event handlers
Supplying custom data
Leveraging web technologies from R
Web infrastructure
Modern JS & React
VI Various special topics
Is plotly free & secure?
Improving performance
Controlling tooltips
plot_ly() tooltips
ggplotly() tooltips
Styling
Control the modebar
Remove the entire modebar
Remove the plotly logo
Remove modebar buttons by name
Add custom modebar buttons
Control image downloads
Working with colors
Working with symbols and glyphs
Embedding images
Language support
LaTeX rendering
MathJax caveats
The data-plot-pipeline
Improving ggplotly()
Modifying layout
Modifying data
Leveraging statistical output
Translating custom ggplot geoms
Biography
Carson Sievert is the author and maintainer of the plotly R package, a recipient of the American Statistical Association’s 2017 John Chambers award, and Program Chair of the Section on Statistical Graphics. After receiving a PhD in statistics from Iowa State, Carson joined RStudio as a software engineer to work on software that bridges R and web technologies such as shiny, plotly, and rmarkdown.
"Plotly is the most-downloaded interactive graphics system for R, and this book should help all plotly users—both new and experienced—understand more about plotly graphics. With this in mind, I feel that this book (once it makes its way to a final form) will have a wide appeal for a large swath of R users. This audience will include both statisticians and data scientists, and a wide range of education and experience levels, ranging from the novice student to the seasoned data scientist to the statistics faculty member…I suspect a book on plotly will be wildly successful."
~Adam Loy, Carleton College"This book is well-written and well-structured. The potential readership of this book is those who would like to learn or master interactive data visualization with R, and I’m not aware of any competing books in this regard. Both novice R users and experts could find this book useful and learn about plotly more systematically. Data practitioners could obtain lots of practical advice on how to make their plotly applications more responsive and more aesthetically appealing. I would also recommend this book as the textbook for courses that focus on data visualisation using web technology."
~Earo Wang, Monash University"This book fills a gap in the currently-available texts, providing information on making interactive graphics in R. I recently taught a course entitled ‘Advanced Statistical Software,’ and found it difficult to locate resources on plot.ly and shiny. As far as I know, this is the first book to really cover these topics. As with many other books published by Chapman and Hall, the availability of the website version of the book is extremely useful for the R community. I have already used materials from the web version, but if I were to teach this course again I would consider making the paper book a required text…Because Dr. Sievert wrote the plotly R package, he is clearly the world expert in the material. He also brings a wealth of general visualization knowledge to the book, which is full of rich references to other materials."
~Amelia McNamara, University of St. Thomas"This text would be an excellent resource for an advanced (graduate level) data visualization course. I think it could also be very valuable in data journalism coursework, where interactivity is a powerful communication tool. The book is very clearly written, and there are plenty of examples to demonstrate the tools to the reader…I especially enjoyed that the author provides the reader with a link to an RStudio cloud environment with which to run all of the examples in the book on their own. I believe this is an essential piece to this and any other modern computing text."
~Sam Tyner"Some sections of this book will be very useful for two classes I teach. One is introduction to data science where I teach about JSON and HTML data and how to display them. The second course is a data visualization course where I teach interactive visualization…Currently, I am recommending several books. This book will certainly be an addition, in the sense that it provides detailed materials on interactive visualization."
~Mahbubul Majumder, University of Nebraska