Plotly for Ggplot2 is now entirely open source, free, and self-hosted
Learn more about why we've open sourced

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


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

install.packages("viridis") # dependency


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:



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


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 to find your Plotly On-Premise API key. Remember to replace "" 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:


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

Converting ggplot figures into Plotly graphs


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))