plotly is free for unlimited public use
SIGN UP FOR FREE
Sensitive data? Upgrade to a paid plan or trial plotly offline

Getting Started with Plotly and ggplot2 in ggplot2

Plotly for R

Plotly is R package for creating interactive web-based graphs via plotly's JavaScript graphing library, plotly.js. The plotly R libary contains a function ggplotly which will convert ggplot2 figures into graphs drawn with plotly.js and saved in your online plotly account.

Build Status

Installation

plotly is not (yet) available on CRAN, but you can install it via devtools:

install.packages("viridis") # dependency
install.packages("devtools")
devtools::install_github("ropensci/plotly")

Signup

If you don't already have a plotly account, either signup online or use the signup() function (see the help(signup) page for more details).

Note you can check if you have a username and API key with:

plotly:::verify("username")
plotly:::verify("api_key")

Credentials

Find your credentials in our online settings. Set them in your R session with:

Sys.setenv("plotly_username"="your_plotly_username")
Sys.setenv("plotly_api_key"="your_api_key")

Save these commands in your .Rprofile file to be run everytime you start R.

Special Instructions for Plotly On-Premise Users

Your API key for account on the public cloud will be different than the API key in Plotly On-Premise. Visit https://plotly.your-company.com/settings/api/ to find your Plotly On-Premise API key. Remember to replace "your-company.com" with the URL of your Plotly On-Premise server.

If your company has a Plotly On-Premise server, change the R API endpoint so that it points to your company's Plotly server instead of Plotly's cloud.

In your .RProfile write:

Sys.setenv("plotly_domain"="https://plotly.your-company.com")

Remember to replace "your-company" with the URL of your Plotly On-Premise server.

Converting ggplot figures into Plotly graphs

library(plotly)

set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]

p <- ggplot(data = d, aes(x = carat, y = price)) +
  geom_point(aes(text = paste("Clarity:", clarity)), size = 4) +
  geom_smooth(aes(colour = cut, fill = cut)) + facet_wrap(~ cut)

(gg <- ggplotly(p))