Learn R Programming

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

An R package for creating interactive web graphics via the open source JavaScript graphing library plotly.js.

Installation

Install from CRAN:

install.packages("plotly")

Or install the latest development version (on GitHub) via {remotes}:

remotes::install_github("plotly/plotly")

Getting started

Web-based ggplot2 graphics

If you use ggplot2, ggplotly() converts your static plots to an interactive web-based version!

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)

By default, ggplotly() tries to replicate the static ggplot2 version exactly (before any interaction occurs), but sometimes you need greater control over the interactive behavior. The ggplotly() function itself has some convenient “high-level” arguments, such as dynamicTicks, which tells plotly.js to dynamically recompute axes, when appropriate. The style() function also comes in handy for modifying the underlying trace attributes (e.g. hoveron) used to generate the plot:

gg <- ggplotly(g, dynamicTicks = "y")
style(gg, hoveron = "points", hoverinfo = "x+y+text", hoverlabel = list(bgcolor = "white"))

Moreover, since ggplotly() returns a plotly object, you can apply essentially any function from the R package on that object. Some useful ones include layout() (for customizing the layout), add_traces() (and its higher-level add_*() siblings, for example add_polygons(), for adding new traces/data), subplot() (for combining multiple plotly objects), and plotly_json() (for inspecting the underlying JSON sent to plotly.js).

The ggplotly() function will also respect some “unofficial” ggplot2 aesthetics, namely text (for customizing the tooltip), frame (for creating animations), and ids (for ensuring sensible smooth transitions).

Using plotly without ggplot2

The plot_ly() function provides a more direct interface to plotly.js so you can leverage more specialized chart types (e.g., parallel coordinates or maps) or even some visualization that the ggplot2 API won’t ever support (e.g., surface, mesh, trisurf, etc).

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

Learn more

To learn more about special features that the plotly R package provides (e.g., client-side linking, shiny integration, editing and generating static images, custom events in JavaScript, and more), see https://plotly-r.com. You may already be familiar with existing plotly documentation (e.g., https://plotly.com/r/), which is essentially a language-agnostic how-to guide for learning plotly.js, whereas https://plotly-r.com is meant to be more wholistic tutorial written by and for the R user. The package itself ships with a number of demos (list them by running demo(package = "plotly")) and shiny/rmarkdown examples (list them by running plotly_example("shiny") or plotly_example("rmd")). Carson also keeps numerous slide decks with useful examples and concepts.

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

445,253

Version

4.10.1

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Last Published

November 7th, 2022

Functions in plotly (4.10.1)

as_widget

Convert a list to a plotly htmlwidget object
as.widget

Convert a plotly object to an htmlwidget object
add_fun

Apply function to plot, without modifying data
api_create

Tools for working with plotly's REST API (v2)
add_data

Add data to a plotly visualization
add_annotations

Add an annotation(s) to a plot
attrs_selected

Specify attributes of selection traces
event_unregister

Un-register a shiny input value
config

Set the default configuration for plotly
event_data

Access plotly user input event data in shiny
bbox

Estimate bounding box of a rotated string
export

Export a plotly graph to a static file
event_register

Register a shiny input value
geom2trace

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

Highlight/query data based on primary key
hide_guides

Hide guides (legends and colorbars)
get_figure

Request a figure object
knit_print.api_grid

Embed a plotly grid as an iframe in a knitr doc
highlight

Query graphical elements in multiple linked views
colorbar

Modify the colorbar
hide_legend

Hide legend
group2NA

Separate groups with missing values
embed_notebook

Embed a plot as an iframe into a Jupyter Notebook
hobbs

Hobbs data
last_plot

Retrieve the last plot to be modified or created.
ggplotly

Convert ggplot2 to plotly
hide_colorbar

Hide color bar(s)
layout

Modify the layout of a plotly visualization
gg2list

Convert a ggplot to a list.
plot_dendro

Plot an interactive dendrogram
mic

Mic data
plot_geo

Initiate a plotly-geo object
offline

Plotly Offline
plotly_build

'Build' (i.e., evaluate) a plotly object
plotly_POST

Create/Modify plotly graphs
plotly

Main interface to plotly
plotly-shiny

Shiny bindings for plotly
plotly_IMAGE

Create a static image
plotlyProxy

Modify a plotly object inside a shiny app
plotly_data

Obtain data associated with a plotly graph
knit_print.api_grid_local

Embed a plotly grid as an iframe in a knitr doc
plotly_empty

Create a complete empty plotly graph.
knit_print.api_plot

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

Static image exporting via orca
partial_bundle

Use a partial bundle of plotly.js
plot_ly

Initiate a plotly visualization
print.api_grid_local

Print a plotly grid object
plotly_example

Run a plotly example(s)
plot_mapbox

Initiate a plotly-mapbox object
raster2uri

Encode a raster object as a data URI
rangeslider

Add a range slider to the x-axis
plotly_json

Inspect JSON sent to plotly.js
print.kaleidoScope

Print method for kaleido
toWebGL

Convert trace types to WebGL
toRGB

Convert R colours to RGBA hexadecimal colour values
print.api_plot

Print a plot on plotly's platform
res_mn

Minnesotan Indian Reservation Lands
remove_typedarray_polyfill

Remove TypedArray polyfill
save_image

Save plot as a static image
mutate

Objects exported from other packages
schema

Acquire (and optionally display) plotly's plot schema
to_basic

Convert a geom to a "basic" geom.
wind

Wind data
showRGB

View colors already formatted by toRGB()
print.api_grid

Print a plotly grid object
print.api

Print method for a 'generic' API response
signup

Create a new plotly account.
style

Modify trace(s)
subplot

View multiple plots in a single view
TeX

Render TeX in a plotly graph using MathJax
add_trace

Add trace(s) to a plotly visualization
animation_opts

Animation configuration options