cpsievert/plotly_book

2nd edition outline

cpsievert opened this issue · 0 comments

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 via ggplotly()

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?

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

Advanced case studies

plotly extension packages

  • Hmisc, heatmaply, TSstudio, autoplotly