knitr::opts_chunk$set( message = FALSE, warning = FALSE, fig.width = 7, fig.height = 3 )
plotly is an R package for making interactive graphics via the open source JavaScript graphing library plotly.js. It provides two main ways to create a plotly visualization: ggplotly()
and plot_ly()
. Both of these functions output an htmlwidget object, which allows plots to work seamlessly and consistently across various contexts (e.g., R Markdown documents, shiny apps, inside RStudio, or any other R command prompt). For IPython/Jupyter notebook users, there is also an embed_notebook()
function to embed plots as iframes pointing to a local HTML file. For plot.ly subscribers, there is a plotly_POST()
function for sending local graphs to your account, and a get_figure()
function for downloading publicly hosted plot.ly figure(s).
ggplotly()
The ggplotly()
function translates ggplot2 graphics to a plotly equivalent, for example:
library(plotly) p <- ggplot(txhousing, aes(x = date, y = median, group = city)) + geom_line(alpha = 0.3) + geom_line(data = subset(txhousing, city == "Houston"), color = "red") ggplotly(p)
If you know ggplot2, ggplotly()
is great since you can add some interactivity (specifically, idenfication + zoom & pan) to your plots for free. Also,
The ggplotly()
function tries its best to replicate what you see exactly in the static ggplot2 graph.
The output of a ggplotly()
function is a plotly object.
plot_ly()
interfaceThe plot_ly()
function draws inspiration from ggplot2's implementation of the grammar of graphics, but provides a more flexible and direct interface to plotly.js. The interface is also functional, and designed to work with dplyr, so visualization can be described as a sequence of data manipulations and visual components via the pipe operator (%>%
) from the magrittr package.
txhousing %>% group_by(city) %>% plot_ly(x = ~date, y = ~median) %>% add_lines(alpha = 0.3, color = I("black"), name = "Texan Cities") %>% filter(city == "Houston") %>% add_lines(color = I("red"), name = "Houston")
TODO: list resources
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.