Skip to content

Commit 677a52c

Browse files
committed
add a add_table() helper for mapping data frames to table traces, closes #1290
1 parent f00fcb2 commit 677a52c

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

NAMESPACE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ export(add_scattergeo)
105105
export(add_segments)
106106
export(add_sf)
107107
export(add_surface)
108+
export(add_table)
108109
export(add_text)
109110
export(add_trace)
110111
export(animation_button)

R/add.R

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,38 @@ add_sf <- function(p, ..., x = ~x, y = ~y, data = NULL, inherit = TRUE) {
273273
}
274274

275275

276+
#' @inheritParams add_trace
277+
#' @param rownames whether or not to display the rownames of `data`.
278+
#' @rdname add_trace
279+
#' @export
280+
#' @examples
281+
#'
282+
#' plot_ly(economics) %>%
283+
#' add_table()
284+
add_table <- function(p, ..., rownames = TRUE, data = NULL, inherit = TRUE) {
285+
attrs <- list(...)
286+
dat <- plotly_data(add_data(p, data))
287+
if (is.data.frame(dat)) {
288+
vals <- lapply(names(dat), function(x) list(x))
289+
if (isTRUE(rownames)) vals <- c(list(""), vals)
290+
header_defaults <- list(
291+
values = vals,
292+
align = "right"
293+
)
294+
vals <- setNames(as.list(dat), NULL)
295+
if (isTRUE(rownames)) vals <- c(list(row.names(dat)), vals)
296+
cell_defaults <- list(
297+
values = vals,
298+
align = "right"
299+
)
300+
attrs$header <- modify_list(header_defaults, attrs$header)
301+
attrs$cells <- modify_list(cell_defaults, attrs$cells)
302+
}
303+
304+
do.call(add_trace_classed, c(list(p = p, class = "plotly_table", type = "table"), attrs))
305+
}
306+
307+
276308
#' @inheritParams add_trace
277309
#' @rdname add_trace
278310
#' @export

man/add_trace.Rd

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)