Nothing
context("ggvis")
# Recursively crawl a list and replace any environments with a special
# environment. This is a workaround for a change in behavior in R 3.2.0
# for all.equal when given two environments.
blank_envs <- function(x) {
replacement_env <- new.env(parent = emptyenv())
# Use `x[]<-` to preserve any attributes on x
x[] <- lapply(x, function(val) {
if (is.environment(val)) replacement_env
else if (is.list(val)) blank_envs(val)
else val
})
x
}
test_that("plot the same regardless of order data/props added", {
df <- data.frame(x = 1:10, y = 10:1)
plots <- list(
df %>% ggvis(~x, ~y) %>% layer_points(),
NULL %>% ggvis(~x, ~y) %>% add_data(df) %>% layer_points(),
NULL %>% ggvis(~x, ~y) %>% layer_points(data = df),
ggvis() %>% add_data(df) %>% add_props(~x, ~y) %>% layer_points(),
ggvis() %>% add_data(df) %>% add_props(~x) %>% layer_points(y = ~y)
)
plots <- blank_envs(plots)
marks <- lapply(plots, function(x) x$marks[[1]])
props <- lapply(marks, "[[", "props")
data <- lapply(marks, function(x) x$data())
for (i in seq_along(marks)) {
expect_equal(
props[[i]][c("x.update", "y.update")],
blank_envs(props(~x, ~y))
)
expect_equal(data[[i]], df)
}
})
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.