partial_bundle {plotly} | R Documentation |
Use a partial bundle of plotly.js
Description
Leveraging plotly.js' partial bundles can lead to smaller file sizes and faster rendering. The full list of available bundles, and the trace types that they support, are available here
Usage
partial_bundle(p, type = "auto", local = TRUE, minified = TRUE)
Arguments
p |
a plotly object. |
type |
name of the (partial) bundle. The default, |
local |
whether or not to download the partial bundle so that it can be viewed later without an internet connection. |
minified |
whether or not to use a minified js file (non-minified file can be useful for debugging plotly.js) |
Details
WARNING: use this function with caution when rendering multiple plotly graphs on a single website. That's because, if multiple plotly.js bundles are used, the most recent bundle will override the other bundles. See the examples section for an example.
Author(s)
Carson Sievert
Examples
# ----------------------------------------------------------------------
# This function is always safe to use when rendering a single
# plotly graph. In this case, we get a 3x file reduction.
# ----------------------------------------------------------------------
## Not run:
library(plotly)
p <- plot_ly(x = 1:10, y = 1:10) %>% add_markers()
save_widget <- function(p, f) {
owd <- setwd(dirname(f))
on.exit(setwd(owd))
htmlwidgets::saveWidget(p, f)
mb <- round(file.info(f)$size / 1e6, 3)
message("File is: ", mb," MB")
}
f1 <- tempfile(fileext = ".html")
f2 <- tempfile(fileext = ".html")
save_widget(p, f1)
save_widget(partial_bundle(p), f2)
# ----------------------------------------------------------------------
# But, since plotly.js bundles override one another,
# be careful when putting multiple graphs in a larger document!
# Note how the surface (part of the gl3d bundle) renders, but the
# heatmap (part of the cartesian bundle) doesn't...
# ----------------------------------------------------------------------
library(htmltools)
p1 <- plot_ly(z = ~volcano) %>%
add_heatmap() %>%
partial_bundle()
p2 <- plot_ly(z = ~volcano) %>%
add_surface() %>%
partial_bundle()
browsable(tagList(p1, p2))
## End(Not run)