context("ggthemes")
skip_if_not_installed("ggplot2")
library(ggplot2)
test_that("works as expected with global ggthemes", {
ggtheme <- theme_get()
on.exit(theme_set(ggtheme), add = TRUE)
theme_set(theme_void())
thematic_on("black", "white", accent = NA, font = font_spec(scale = 1.5))
expect_doppelganger("ggtheme-void", qplot(1:10))
theme_set(theme_minimal())
expect_doppelganger("ggtheme-minimal", qplot(1:10))
thematic_off()
expect_doppelganger("ggtheme-minimal-off", qplot(1:10))
})
test_that("works as expected with plot-specific themes", {
thematic_on(bg = "#222222", fg = "white", accent = NA)
on.exit(thematic_off(), add = TRUE)
p <- ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
facet_wrap(~cyl)
p <- p + theme(strip.background = element_rect(fill = "purple"))
expect_doppelganger("purple-strip", p)
p <- qplot(1:10) + theme(
axis.text = element_text(colour = "red", size = 5),
axis.text.x = element_text(size = 50)
)
expect_doppelganger("axis-interitance", p)
p <- qplot(1:10) + theme(
text = element_text(colour = "red", size = 5),
axis.text.x.bottom = element_text(size = 50)
)
expect_doppelganger("axis-interitance-distant", p)
expect_doppelganger("axis-interitance-distant2", last_plot())
})
test_that("Global ggthemes are respected", {
p <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
geom_point()
with_ggtheme <- function(theme, expr) {
old_theme <- theme_set(theme)
on.exit(theme_set(old_theme), add = TRUE)
thematic_with_theme(thematic_theme("black", "white", NA), expr)
}
# ggplot2 themes
expect_doppelganger("bw", function() with_ggtheme(theme_bw(), p))
expect_doppelganger("dark", function() with_ggtheme(theme_dark(), p))
expect_doppelganger("minimal", function() with_ggtheme(theme_minimal(), p))
expect_doppelganger("classic", function() with_ggtheme(theme_classic(), p))
expect_doppelganger("light", function() with_ggtheme(theme_light(), p))
expect_doppelganger("linedraw", function() with_ggtheme(theme_linedraw(), p))
expect_doppelganger("void", function() with_ggtheme(theme_void(), p))
# ggthemes
skip_if_not_installed("ggthemes")
ggthemes <- asNamespace("ggthemes")
expect_doppelganger("wsj", function() with_ggtheme(ggthemes$theme_wsj(), p))
expect_doppelganger("base", function() with_ggtheme(ggthemes$theme_base(), p))
expect_doppelganger("solid", function() with_ggtheme(ggthemes$theme_solid(), p))
expect_doppelganger("solarized", function() with_ggtheme(ggthemes$theme_solarized(), p))
expect_doppelganger("economist", function() with_ggtheme(ggthemes$theme_economist(), p))
expect_doppelganger("calc", function() with_ggtheme(ggthemes$theme_calc(), p))
expect_doppelganger("fivethirtyeight", function() with_ggtheme(ggthemes$theme_fivethirtyeight(), p))
expect_doppelganger("map", function() with_ggtheme(ggthemes$theme_map(), p))
expect_doppelganger("excel", function() with_ggtheme(ggthemes$theme_excel(), p))
expect_doppelganger("clean", function() with_ggtheme(ggthemes$theme_clean(), p))
expect_doppelganger("excel_new", function() with_ggtheme(ggthemes$theme_excel_new(), p))
expect_doppelganger("igray", function() with_ggtheme(ggthemes$theme_igray(), p))
expect_doppelganger("foundation", function() with_ggtheme(ggthemes$theme_foundation(), p))
expect_doppelganger("few", function() with_ggtheme(ggthemes$theme_few(), p))
expect_doppelganger("pander", function() with_ggtheme(ggthemes$theme_pander(), p))
expect_doppelganger("solarized_2", function() with_ggtheme(ggthemes$theme_solarized_2(), p))
expect_doppelganger("gdocs", function() with_ggtheme(ggthemes$theme_gdocs(), p))
expect_doppelganger("tufte", function() with_ggtheme(ggthemes$theme_tufte(), p))
expect_doppelganger("par", function() with_ggtheme(ggthemes$theme_par(), p))
expect_doppelganger("stata", function() with_ggtheme(ggthemes$theme_stata(), p))
expect_doppelganger("hc", function() with_ggtheme(ggthemes$theme_hc(), p))
skip_if_not_installed("dplyr")
expect_doppelganger("economist_white", function() with_ggtheme(ggthemes$theme_economist_white(), p))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.