Nothing
# convert layout-specific geoms/layers
layers2layout <- function(gglayout, layers, layout) {
geoms <- sapply(layers, function(x) class(x[["geom"]])[1])
RasterGeom <- which(geoms %in% "GeomRasterAnn")
for (i in RasterGeom) {
params <- layers[[i]]$computed_geom_params %||% layers[[i]]$geom_params
for (j in seq_len(nrow(layout))) {
lay <- layout[j, ]
img <- list(
source = raster2uri(params$raster),
# TODO: ask plotly.js to implement explicit placement between traces?
layer = if (RasterGeom / length(geoms) > 0.5) "above" else "below",
xref = sub("axis", "", lay[["xaxis"]]),
yref = sub("axis", "", lay[["yaxis"]]),
x = params$xmin,
xanchor = "left",
sizex = with(params, abs(xmax - xmin)),
y = params$ymin,
yanchor = "bottom",
sizey = with(params, abs(ymax - ymin)),
sizing = "stretch"
)
gglayout$images <- c(gglayout$images, list(img))
}
}
# TODO: maybe we could support a subset of grobs in GeomCustomAnn?
gglayout
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.