Learn R Programming

⚠️There's a newer version (4.10.4) of this package.Take me there.

plotly

An R package for creating interactive web graphics via plotly.js.

Installation

Install from CRAN:

install.packages("plotly")

Or install the latest development version (on GitHub) via devtools:

devtools::install_github("ropensci/plotly")

Getting Started

Web-based ggplot2 graphics

If you use ggplot2, ggplotly() converts your plots to an interactive, web-based version! It also provides sensible tooltips, which assists decoding of values encoded as visual properties in the plot.

library(plotly)
g <- ggplot(faithful, aes(x = eruptions, y = waiting)) +
  stat_density_2d(aes(fill = ..level..), geom = "polygon") + 
  xlim(1, 6) + ylim(40, 100)
ggplotly(g)

If you'd like to see how ggplotly() does in converting different ggplot2 examples, we host a plotly version of the official ggplot2 documentation. We also have some of our own examples here.

plotly's custom R interface

plotly supports some chart types that ggplot2 doesn't (such as 3D surface, point, and line plots). You can create these (or any other plotly) charts using plot_ly().

plot_ly(z = volcano, type = "surface")

For a more concise overview of the plot_ly() interface, see here. You might also find our examples and the figure reference to be helpful.

Hooking onto plotly events

plotly.js exposes a number of 'standard' events that work consistently across plot types. It's easy to hook into these events using the event_data() function in shiny apps, as these examples demonstrate:

  1. 2D events (source)
  2. Linked Clicks (source)
  3. Linked Brush (source)

You can also hook into these events without shiny using htmlwidgets::onRender() (example). This, however, requires JavaScript knowledge and makes it much harder, if not impossible, to coordinate views between htmlwidgets.

Contributing

Please read through our contributing guidelines. Included are directions for opening issues, asking questions, contributing changes to plotly, and our code of conduct.


Copy Link

Version

Install

install.packages('plotly')

Monthly Downloads

235,016

Version

3.6.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Carson Sievert

Last Published

January 14th, 2024

Functions in plotly (3.6.1)

bbox

Estimate bounding box of a rotated string
embed_notebook

Embed a plotly figure as an iframe into a IPython Notebook
add_trace

Add a trace to a plotly visualization
event_data

Access plotly user input event data in shiny
get_figure

Request a figure object
config

Set the default configuration for plotly
get_plot

Obtain underlying data of plotly object
as.widget

Convert a plotly object to an htmlwidget object
geom2trace

Convert a "basic" geoms to a plotly.js trace.
gg2list

Convert a ggplot to a list.
layout

Add and/or modify layout of a plotly
knit_print.plotly_built

Print a 'built' plotly object in a knitr doc
knit_print.figure

Embed a plotly figure as an iframe in a knitr doc
plotly

Main interface to plotly
print.plotly_built

Print a 'built' plotly object
print.plotly_hash

Print a plotly object
mic

Mic data
plotly_build

Create a 'plotly_built' object
style

Modify trace(s)
plotly_POST

Create/Modify plotly graphs
signup

Create a new plotly account.
last_plot

Retrive and create the last plotly (or ggplot).
knit_print.plotly_hash

Print a plotly object in a knitr doc
to_basic

Convert a geom to a "basic" geom.
wind

Wind data
plotly_IMAGE

Create/Modify plotly images
%>%

Pipe operator
print.figure

Print a plotly figure object
offline

Plotly Offline
plotly_empty

Create a complete empty plotly graph.
ggplotly

Create plotly graphs using ggplot2 syntax
plot_ly

Initiate a plotly visualization
plotly-shiny

Shiny bindings for plotly
hobbs

Hobbs data
subplot

View multiple plots in a single view
toRGB

Convert R colours to RGBA hexadecimal colour values