thematic_with_theme {thematic} | R Documentation |
Tools for getting and restoring global state
Description
These functions are helpful for getting and/or temporarily activating a
thematic_theme()
.
Usage
thematic_with_theme(theme, expr)
thematic_local_theme(theme, .local_envir = parent.frame())
thematic_set_theme(theme)
thematic_get_theme(resolve = TRUE)
thematic_get_option(name = "", default = NULL, resolve = TRUE)
thematic_get_mixture(amounts = 0.5, default = NULL)
Arguments
theme |
a |
expr |
R code that produces a plot. |
.local_envir |
The environment to use for scoping. |
resolve |
whether or not |
name |
a theme element name (e.g., |
default |
a default value to return in the event no thematic theme is active. |
amounts |
value(s) between 0 and 1 specifying how much to mix |
Value
the result of expr
.
Functions
-
thematic_with_theme()
: similar tothematic_on()
, but for an single plot. -
thematic_local_theme()
: similar tothematic_with_theme()
, but de-couples the theme from the plot expression. -
thematic_set_theme()
: set a giventheme
object as the current theme. -
thematic_get_theme()
: obtain the currenttheme
. -
thematic_get_option()
: obtain a particulartheme
option (and provide adefault
if notheme
is active). -
thematic_get_mixture()
: obtain a mixture of the currenttheme
'sbg
andfg
.
Examples
# Use thematic_with_theme() for a one-time use of thematic
thematic_with_theme(
thematic_theme("darkblue", "skyblue", accent = "red"),
plot(1:10, col = thematic_get_option("accent"), pch = 19)
)
# Use thematic_set_theme() if doing something more complicated
# like programming on top thematic (without causing side effects)
my_plot <- function(expr, las = 3, ...) {
old_theme <- thematic_on("black", "white")
on.exit(thematic_set_theme(old_theme), add = TRUE)
opts <- par(las = las)
on.exit(par(opts), add = TRUE)
# Imagine some more customization with ...
force(expr)
}
my_plot(plot(1:10))
thematic_off()
thematic_get_option("bg", "white")
thematic_on(bg = "red")
thematic_get_option("bg", "white")
thematic_off()
thematic_with_theme(
thematic_theme("darkblue", "skyblue"),
scales::show_col(thematic_get_mixture(seq(0, 1, by = 0.1)))
)