2nd edition outline
cpsievert opened this issue · 0 comments
cpsievert commented
Why interactive data visualization?
- Data science workflow
- Interactivity augments exploration
- Some historical context and examples (https://talks.cpsievert.me/20180202/#7)
- "Interactive graphics enable the analyst to pursue follow-up questions" -- Cook & Swayne, GGobi book, p15
- A case study of US election data
- GUI and command-line - conflict or synergy?
- Web-based visualization
- New capabilites (e.g. easy sharing, portability) brings new set of concerns (e.g., client-server, security, etc)
- Great tools for expository vis (d3.js, vega, plotly.js)
- Lack of tools for exploratory vis (i.e. tools for iteration)
The plotly for R ecosystem
- plotly is a FOSS tool built with plotly.js and htmlwidgets
- Plotly's cloud services
- collaboration, point-and-click editing & collaboration
- Getting started (installation, etc)
- Two approaches, one object
The ggplotly()
toolbox
- Makes some plots easier to acheive (e.g.,
geom_hex()
,geom_smooth()
, etc) - Caveats and limitations
- Learn
plotly.js
viaggplotly()
The plot_ly()
toolbox
- Scatter traces
- Maps
- Bars & histograms
- 2D frequencies
- Raster images
- 3D graphics
Animating views
- Key frame animations
- Linking animated views
Arranging multiple views
- Arranging htmlwidgets
- Merging plotly objects
- Navigating many views
Multiple linked views
- Linking views with shiny
- Linking views without shiny
Exporting views
- Saving local HTML files
- Embedding local HTML files (i.e., iframe, widgetFrame, etc)
- Using
orca()
to export to various file formats - Using
config(p, editable = T)
to manually edit charts - Exporting manually edited charts
- Should this just leverage
config(p, toImageOptions = ...)
? Or provide a way to get at the underlying JSON?
- Should this just leverage
Performance considerations
- What's in a plotly object?
- What happens at print-time?
- Build-time versus render time
- Build time
- profvis
- Render time
- SVG vs Web-GL rendering
- Data summary/simplification
Custom JavaScript
- Motivate through examples
- Opening hyperlinks
- Adding annotations in response to direct manipulation
Other ideas
- Interactive annotations via https://github.com/plotly/react-chart-editor (would require a proper wrapper)
- Manipulating widgets with https://github.com/rte-antares-rpackage/manipulateWidget
Advanced case studies
- storm paths -- https://vimeo.com/257149623
- https://github.com/cpsievert/pedestrians
- https://github.com/cpsievert/zikar
- https://github.com/cpsievert/eechidna
- https://github.com/cpsievert/accidents
plotly extension packages
- Hmisc, heatmaply, TSstudio, autoplotly