Nothing
context("trelliscope")
test_that("examples run without barfing", {
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(purrr))
suppressPackageStartupMessages(library(plotly))
suppressPackageStartupMessages(library(ggplot2))
# tidyverse + plotly
d <- mpg %>%
nest(data = !one_of(c("manufacturer", "class"))) %>%
mutate(
mean_city_mpg = map_dbl(data, ~ mean(.$cty)),
panel = map_plot(data, function(x) {
plot_ly(data = x, x = ~cty, y = ~hwy,
type = "scatter", mode = "markers")
}
))
p <- d %>% trelliscope(name = "city_vs_highway_mpg", thumb = FALSE)
print(p)
# set default layout
p <- d %>% trelliscope(name = "city_vs_highway_mpg", nrow = 2, ncol = 3, thumb = FALSE)
print(p)
tf <- tempfile("trelliscopetest")
on.exit(unlink(tf, recursive = TRUE))
# set the output path for where files will be stored
p <- d %>% trelliscope(name = "city_vs_highway_mpg", path = tf, thumb = FALSE)
print(p)
# multiple displays can be added to the same path and all will be available in the viewer
p <- d %>% trelliscope(name = "city_vs_highway_mpg2", path = tf, thumb = FALSE)
print(p)
# ordering the data frame will set default sort order of the display
p <- d %>%
arrange(-mean_city_mpg) %>%
trelliscope(name = "city_vs_highway_mpg", thumb = FALSE)
print(p)
# tidyverse + ggplot2
p <- mpg %>%
nest(data = !one_of(c("manufacturer", "class"))) %>%
mutate(
panel = map_plot(data, ~
qplot(cty, hwy, data = .) + xlab("cty") + ylab("hwy") +
xlim(7, 37) + ylim(9, 47) + theme_bw())) %>%
trelliscope(name = "tidy_gg", thumb = FALSE)
print(p)
# computing additional cognostics
mpg_cog <- mpg %>%
nest(data = !one_of(c("manufacturer", "class"))) %>%
mutate(
cogs = map_cog(data, ~ tibble(
mean_city_mpg = mean(.$cty),
mean_hwy_mpg = mean(.$hwy),
most_common_drv = tail(names(table(.$drv)), 1)
)),
panel = map_plot(data, function(x) {
plot_ly(data = x, x = ~cty, y = ~hwy,
type = "scatter", mode = "markers")
})
)
p <- mpg_cog %>%
trelliscope(name = "city_vs_highway_mpg", nrow = 1, ncol = 2, thumb = FALSE)
print(p)
# computing additional cognostics explicitly using cog()
# so we can specify descriptions, etc.
mpg_cog2 <- mpg %>%
nest(data = !one_of(c("manufacturer", "class"))) %>%
mutate(
cogs = map_cog(data, ~ tibble(
mean_city_mpg = cog(mean(.$cty), desc = "Mean city mpg"),
mean_hwy_mpg = cog(mean(.$hwy), desc = "Mean highway mpg"),
most_common_drv = cog(tail(names(table(.$drv)), 1), desc = "Most common drive type")
)),
panel = map_plot(data, function(x) {
plot_ly(data = x, x = ~cty, y = ~hwy,
type = "scatter", mode = "markers")
})
)
p <- mpg_cog2 %>%
trelliscope(name = "city_vs_highway_mpg", nrow = 1, ncol = 2, thumb = FALSE)
print(p)
## ggplot2
##---------------------------------------------------------
# library(ggplot2)
# qplot(cty, hwy, data = mpg) +
# facet_trelliscope(~ class, auto_cog = FALSE)
# test using date variables
x <- factor(LETTERS[1:4])
names(x) <- letters[1:4]
data_year_date <- data.frame(
year = structure(seq(1950, 1989, 1), class = "Date"),
var = rep(x, 10), y = seq(1, 200, 5))
ggplot(data_year_date, aes(year, y)) + geom_point() +
facet_trelliscope(~ var)
# update variable with cog()
mpg2 <- mpg
mpg2$class2 <- as.integer(factor(mpg2$class))
mpg2$class2 <- cog(mpg2$class2, desc = "custom cognostic label test")
p <- qplot(cty, hwy, data = mpg2) +
facet_trelliscope(~ class)
print(p)
# not required, but if you set labels, these will be added as
# descriptions to the cognostics that are automatically computed
mpg <- set_labels(mpg, mpg_labels)
p <- qplot(cty, hwy, data = mpg) +
theme_bw() +
facet_trelliscope(~ class, nrow = 2, ncol = 4)
print(p)
p <- qplot(cty, hwy, data = mpg) +
theme_bw() +
facet_trelliscope(~ class + manufacturer, nrow = 2, ncol = 4)
print(p)
if (utils::packageVersion("ggplot2") > "2.2.1") {
p <- qplot(cty, hwy, data = mpg) +
theme_bw() +
facet_trelliscope(vars(class), nrow = 2, ncol = 4)
print(p)
p <- qplot(cty, hwy, data = mpg) +
theme_bw() +
facet_trelliscope(vars(class, manufacturer), nrow = 2, ncol = 4)
print(p)
}
p <- qplot(class, cty, data = mpg, geom = c("boxplot", "jitter"),
na.rm = TRUE) +
facet_trelliscope(~ class + manufacturer, ncol = 7,
height = 800, width = 200,
state = list(sort = list(sort_spec("cty_mean"))),
scales = c("free", "same")) +
theme_bw()
print(p)
p <- qplot(class, cty, data = mpg, geom = c("boxplot", "jitter"),
na.rm = TRUE) +
facet_trelliscope(~ class, ncol = 7, height = 800, width = 200,
state = list(sort = list(sort_spec("cty_mean"))),
scales = c("free", "same"), as_plotly = TRUE) +
theme_bw()
print(p)
## cogs
##---------------------------------------------------------
p <- ggplot2::mpg %>%
nest(data = !one_of(c("manufacturer", "class"))) %>%
mutate(
additional_cogs = map_cog(data, function(x) {
tibble(
max_city_mpg = cog(max(x$cty), desc = "Max city mpg"),
min_city_mpg = cog(min(x$cty), desc = "Min city mpg"))
}),
panel = map_plot(data, function(x) {
plot_ly(data = x, x = ~cty, y = ~hwy,
type = "scatter", mode = "markers")
})) %>%
trelliscope(name = "city_vs_highway_mpg", nrow = 1, ncol = 2, thumb = FALSE)
print(p)
## other tidyverse functions
p <- iris %>%
nest(data = -Species) %>%
mutate(
mod = map(data, ~ lm(Sepal.Length ~ Sepal.Width, data = .x)),
cogs = map2_cog(data, mod, function(data, mod) {
tibble(max_sl = max(data$Sepal.Length), slope = coef(mod)[2])
}),
panel = map2_plot(data, mod, function(data, mod) {
plot_ly(data = data, x = ~Sepal.Width, y = ~Sepal.Length,
type = "scatter", mode = "markers", name = "data") %>%
add_trace(data = data, x = ~Sepal.Width, y = ~predict(mod),
mode = "lines", name = "lm")
})) %>%
trelliscope(name = "iris", thumb = FALSE)
print(p)
p <- iris %>%
nest(data = -Species) %>%
mutate(
mod = map(data, ~ lm(Sepal.Length ~ Sepal.Width, data = .x)),
cogs = pmap_cog(list(data = data), function(data) {
tibble(max_sl = max(data$Sepal.Length))
}),
panel = pmap_plot(list(data = data, mod = mod), function(data, mod) {
plot_ly(data = data, x = ~Sepal.Width, y = ~Sepal.Length,
type = "scatter", mode = "markers", name = "data") %>%
add_trace(data = data, x = ~Sepal.Width, y = ~predict(mod),
mode = "lines", name = "lm")
})) %>%
trelliscope(name = "iris", thumb = FALSE)
print(p)
iris_sample <- iris %>% mutate(sample = sample(Species, 150))
expect_error({
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, "iris_sample", auto_cog = TRUE)
print(p)
})
expect_error({
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, 1, "iris_sample", auto_cog = TRUE)
print(p)
})
expect_error({
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, 1:10, name = "iris_sample", auto_cog = TRUE)
print(p)
})
expect_error({
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, 2.3, name = "iris_sample", auto_cog = TRUE)
print(p)
})
expect_error({
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, 0, name = "iris_sample", auto_cog = TRUE)
print(p)
})
p <- qplot(Sepal.Width, Sepal.Length, data = iris_sample) +
facet_trelliscope(~ Species, name = "iris_sample", auto_cog = TRUE)
print(p)
})
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.