Nothing
test_that("set_panel_spacing stores validated spacing on aplot objects", {
p1 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, disp)) +
ggplot2::geom_point()
p2 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, wt)) +
ggplot2::geom_point()
ap <- insert_right(p1, p2)
ap2 <- set_panel_spacing(ap, 2)
expect_identical(ap2$spacing, 2)
expect_error(set_panel_spacing(ap, -1), "non-negative numeric value or 'asis'")
expect_error(set_panel_spacing(ap, "bad"), "non-negative numeric value or 'asis'")
expect_error(set_panel_spacing(p1, 2), "'x' should be an 'aplot' object.")
})
test_that("panel margins are split across shared edges", {
layout <- matrix(c(1, 2), nrow = 1)
margins <- aplot:::.compute_panel_margins(layout, 2)
expect_equal(as.numeric(margins[[1]]), c(0, 1, 0, 0))
expect_equal(as.numeric(margins[[2]]), c(0, 0, 0, 1))
})
test_that("object spacing preserves plot margins when using 'asis'", {
p1 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, disp)) +
ggplot2::geom_point() +
ggplot2::theme(plot.margin = ggplot2::margin(1, 2, 3, 4))
p2 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, wt)) +
ggplot2::geom_point() +
ggplot2::theme(plot.margin = ggplot2::margin(4, 3, 2, 1))
plotlist <- list(p1, p2)
updated <- aplot:::.apply_panel_spacing(
plotlist = plotlist,
layout = matrix(c(1, 2), nrow = 1),
spacing = "asis"
)
expect_identical(
as.numeric(updated[[1]]$theme$plot.margin),
as.numeric(p1$theme$plot.margin)
)
expect_identical(
as.numeric(updated[[2]]$theme$plot.margin),
as.numeric(p2$theme$plot.margin)
)
})
test_that("object spacing takes precedence over legacy option", {
old_spacing <- getOption("space.between.plots")
on.exit(options(space.between.plots = old_spacing), add = TRUE)
options(space.between.plots = 0)
p1 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, disp)) +
ggplot2::geom_point()
p2 <- ggplot2::ggplot(mtcars, ggplot2::aes(mpg, wt)) +
ggplot2::geom_point()
ap <- insert_right(p1, p2)
resolved <- aplot:::.resolve_panel_spacing(set_panel_spacing(ap, 2))
expect_identical(resolved$mode, "object")
expect_identical(resolved$spacing, 2)
})
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.