plotly (version 4.10.4)

plotly_data: Obtain data associated with a plotly graph

Description

plotly_data() returns data associated with a plotly visualization (if there are multiple data frames, by default, it returns the most recent one).

Usage

plotly_data(p, id = p$x$cur_data)

# S3 method for plotly groups(x)

# S3 method for plotly ungroup(x, ...)

# S3 method for plotly group_by(.data, ...)

# S3 method for plotly mutate(.data, ...)

# S3 method for plotly do(.data, ...)

# S3 method for plotly summarise(.data, ...)

# S3 method for plotly arrange(.data, ...)

# S3 method for plotly select(.data, ...)

# S3 method for plotly filter(.data, ...)

# S3 method for plotly distinct(.data, ...)

# S3 method for plotly slice(.data, ...)

# S3 method for plotly rename(.data, ...)

# S3 method for plotly transmute(.data, ...)

# S3 method for plotly group_by_(.data, ...)

# S3 method for plotly mutate_(.data, ...)

# S3 method for plotly do_(.data, ...)

# S3 method for plotly summarise_(.data, ...)

# S3 method for plotly arrange_(.data, ...)

# S3 method for plotly select_(.data, ...)

# S3 method for plotly filter_(.data, ...)

# S3 method for plotly distinct_(.data, ...)

# S3 method for plotly slice_(.data, ...)

# S3 method for plotly rename_(.data, ...)

# S3 method for plotly transmute_(.data, ...)

Arguments

p

a plotly visualization.

id

a character string or number referencing an "attribute layer".

x

a plotly visualization.

...

arguments passed onto the relevant method.

.data

a plotly visualization.

Examples

Run this code

# use group_by() to define groups of visual markings
p <- txhousing %>%
  group_by(city) %>%
  plot_ly(x = ~date, y = ~sales)
p

# plotly objects preserve data groupings 
groups(p)
plotly_data(p)

# dplyr verbs operate on plotly objects as if they were data frames
p <- economics %>%
  plot_ly(x = ~date, y = ~unemploy / pop) %>%
  add_lines() %>%
  mutate(rate = unemploy / pop) %>% 
  filter(rate == max(rate))
plotly_data(p)
add_markers(p)
layout(p, annotations = list(x = ~date, y = ~rate, text = "peak"))

# use group_by() + do() + subplot() for trellis displays 
d <- group_by(mpg, drv)
plots <- do(d, p = plot_ly(., x = ~cty, name = ~drv))
subplot(plots[["p"]], nrows = 3, shareX = TRUE)

# arrange displays by their mean
means <- summarise(d, mn = mean(cty, na.rm = TRUE))
means %>%
  dplyr::left_join(plots) %>%
  arrange(mn) %>%
  subplot(nrows = NROW(.), shareX = TRUE)
  
# more dplyr verbs applied to plotly objects
p <- mtcars %>%
  plot_ly(x = ~wt, y = ~mpg, name = "scatter trace") %>%
  add_markers()
p %>% slice(1) %>% plotly_data()
p %>% slice(1) %>% add_markers(name = "first observation")
p %>% filter(cyl == 4) %>% plotly_data()
p %>% filter(cyl == 4) %>% add_markers(name = "four cylinders")

Run the code above in your browser using DataLab