This function maps R objects to plotly.js,
an (MIT licensed) web-based interactive charting library. It provides
abstractions for doing common things (e.g. mapping data values to
fill colors (via color
) or creating animations (via frame
)) and sets
some different defaults to make the interface feel more 'R-like'
(i.e., closer to plot()
and ggplot2::qplot()
).
Usage
plot_ly(
data = data.frame(),
...,
type = NULL,
name = NULL,
color = NULL,
colors = NULL,
alpha = NULL,
stroke = NULL,
strokes = NULL,
alpha_stroke = 1,
size = NULL,
sizes = c(10, 100),
span = NULL,
spans = c(1, 20),
symbol = NULL,
symbols = NULL,
linetype = NULL,
linetypes = NULL,
split = NULL,
frame = NULL,
width = NULL,
height = NULL,
source = "A"
)
# S3 method for class 'tbl_df'
plot_ly(
data = data.frame(),
...,
type = NULL,
name = NULL,
color = NULL,
colors = NULL,
alpha = NULL,
stroke = NULL,
strokes = NULL,
alpha_stroke = 1,
size = NULL,
sizes = c(10, 100),
span = NULL,
spans = c(1, 20),
symbol = NULL,
symbols = NULL,
linetype = NULL,
linetypes = NULL,
split = NULL,
frame = NULL,
width = NULL,
height = NULL,
source = "A"
)
# S3 method for class 'Seurat'
plot_ly(
data = data.frame(),
...,
type = NULL,
name = NULL,
color = NULL,
colors = NULL,
alpha = NULL,
stroke = NULL,
strokes = NULL,
alpha_stroke = 1,
size = NULL,
sizes = c(10, 100),
span = NULL,
spans = c(1, 20),
symbol = NULL,
symbols = NULL,
linetype = NULL,
linetypes = NULL,
split = NULL,
frame = NULL,
width = NULL,
height = NULL,
source = "A"
)
Arguments
- data
A data frame (optional) or crosstalk::SharedData object.
- ...
Arguments (i.e., attributes) passed along to the trace
type
. Seeschema()
for a list of acceptable attributes for a given tracetype
(by going totraces
->type
->attributes
). Note that attributes provided at this level may override other arguments (e.g.plot_ly(x = 1:10, y = 1:10, color = I("red"), marker = list(color = "blue"))
).- type
A character string specifying the trace type (e.g.
"scatter"
,"bar"
,"box"
, etc). If specified, it always creates a trace, otherwise- name
Values mapped to the trace's name attribute. Since a trace can only have one name, this argument acts very much like
split
in that it creates one trace for every unique value.- color
Values mapped to relevant 'fill-color' attribute(s) (e.g. fillcolor, marker.color, textfont.color, etc.). The mapping from data values to color codes may be controlled using
colors
andalpha
, or avoided altogether viaI()
(e.g.,color = I("red")
). Any color understood bygrDevices::col2rgb()
may be used in this way.- colors
Either a colorbrewer2.org palette name (e.g. "YlOrRd" or "Blues"), or a vector of colors to interpolate in hexadecimal "#RRGGBB" format, or a color interpolation function like
colorRamp()
.- alpha
A number between 0 and 1 specifying the alpha channel applied to
color
. Defaults to 0.5 when mapping to fillcolor and 1 otherwise.- stroke
Similar to
color
, but values are mapped to relevant 'stroke-color' attribute(s) (e.g., marker.line.color and line.color for filled polygons). If not specified,stroke
inherits fromcolor
.- strokes
Similar to
colors
, but controls thestroke
mapping.- alpha_stroke
Similar to
alpha
, but applied tostroke
.- size
(Numeric) values mapped to relevant 'fill-size' attribute(s) (e.g., marker.size, textfont.size, and error_x.width). The mapping from data values to symbols may be controlled using
sizes
, or avoided altogether viaI()
(e.g.,size = I(30)
).- sizes
A numeric vector of length 2 used to scale
size
to pixels.- span
(Numeric) values mapped to relevant 'stroke-size' attribute(s) (e.g., marker.line.width, line.width for filled polygons, and error_x.thickness) The mapping from data values to symbols may be controlled using
spans
, or avoided altogether viaI()
(e.g.,span = I(30)
).- spans
A numeric vector of length 2 used to scale
span
to pixels.- symbol
(Discrete) values mapped to marker.symbol. The mapping from data values to symbols may be controlled using
symbols
, or avoided altogether viaI()
(e.g.,symbol = I("pentagon")
). Any pch value or symbol name may be used in this way.- symbols
A character vector of pch values or symbol names.
- linetype
(Discrete) values mapped to line.dash. The mapping from data values to symbols may be controlled using
linetypes
, or avoided altogether viaI()
(e.g.,linetype = I("dash")
). Anylty
(see par) value or dash name may be used in this way.- linetypes
A character vector of
lty
values or dash names- split
(Discrete) values used to create multiple traces (one trace per value).
- frame
(Discrete) values used to create animation frames.
- width
Width in pixels (optional, defaults to automatic sizing).
- height
Height in pixels (optional, defaults to automatic sizing).
- source
a character string of length 1. Match the value of this string with the source argument in
event_data()
to retrieve the event data corresponding to a specific plot (shiny apps can have multiple plots).
Details
Unless type
is specified, this function just initiates a plotly
object with 'global' attributes that are passed onto downstream uses of
add_trace()
(or similar). A formula must always be used when
referencing column name(s) in data
(e.g. plot_ly(mtcars, x = ~wt)
).
Formulas are optional when supplying values directly, but they do
help inform default axis/scale titles
(e.g., plot_ly(x = mtcars$wt)
vs plot_ly(x = ~mtcars$wt)
)
See also
For initializing a plotly-geo object:
plot_geo()
For initializing a plotly-mapbox object:
plot_mapbox()
For translating a ggplot2 object to a plotly object:
ggplotly()
For modifying any plotly object:
layout()
,add_trace()
,style()
For linked brushing:
highlight()
For arranging multiple plots:
subplot()
,crosstalk::bscols()
For inspecting plotly objects:
plotly_json()
For quick, accurate, and searchable plotly.js reference:
schema()
Examples
data(pbmc_small)
plot_ly(pbmc_small)