library(ggplot2)
test_that("examples", {
histPlot <-
ggplot(diamonds, aes(price, fill = cut)) +
geom_histogram(binwidth = 500)
(right <- histPlot)
(bottom <- histPlot + theme(legend.position = "bottom"))
(top <- histPlot + theme(legend.position = "top"))
(left <- histPlot + theme(legend.position = "left"))
expect_legend <- function(name, p) {
plotLegend <- grab_legend(p)
expect_true(inherits(plotLegend, "gtable"))
expect_true(inherits(plotLegend, "gTree"))
expect_true(inherits(plotLegend, "grob"))
vdiffr::expect_doppelganger(paste0("pos-", name), plotLegend)
}
expect_legend("right", right)
expect_legend("bottom", bottom)
expect_legend("top", top)
expect_legend("left", left)
})
test_that("legend", {
# display regular plot
vdiffr::expect_doppelganger(
"legend",
ggally_points(iris, ggplot2::aes(Sepal.Length, Sepal.Width, color = Species))
)
# Make a function that will only print the legend
points_legend <- gglegend(ggally_points)
l <- points_legend(
iris, ggplot2::aes(Sepal.Length, Sepal.Width, color = Species)
)
vdiffr::expect_doppelganger("points", l)
# produce the sample legend plot, but supply a string that 'wrap' understands
same_points_legend <- gglegend("points")
expect_identical(
attr(attr(points_legend, "fn"), "original_fn"),
attr(attr(same_points_legend, "fn"), "original_fn")
)
# Complicated examples
custom_legend <- wrap(gglegend("points"), size = 6)
p <- custom_legend(
iris, ggplot2::aes(Sepal.Length, Sepal.Width, color = Species)
)
vdiffr::expect_doppelganger("custom", p)
expect_true(inherits(p, "gtable"))
expect_true(inherits(p, "gTree"))
expect_true(inherits(p, "grob"))
# Use within ggpairs
expect_silent({
pm <- ggpairs(
iris, 1:2,
mapping = ggplot2::aes(color = Species),
upper = list(continuous = gglegend("points"))
)
})
vdiffr::expect_doppelganger("legend-pm", pm)
# Use within ggpairs
expect_silent({
pm <- ggpairs(
iris, 1:2,
mapping = ggplot2::aes(color = Species)
)
pm[1, 2] <- points_legend(iris, ggplot2::aes(Sepal.Width, Sepal.Length, color = Species))
})
vdiffr::expect_doppelganger("internal-legend", pm)
})
test_that("plotNew", {
points_legend <- gglegend(ggally_points)
vdiffr::expect_doppelganger(
"plotNew-default",
points_legend(
iris, ggplot2::aes(Sepal.Length, Sepal.Width, color = Species)
)
)
expect_silent(
print(
points_legend(
iris, ggplot2::aes(Sepal.Length, Sepal.Width, color = Species)
),
plotNew = TRUE
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.