A unified interface for theming ggplot2, base, and lattice graphics based on a handful of styling options. In some cases (most notably in a shiny runtime), these options can automatically resolve to relevant CSS styles (see the "Auto theming" section below).
thematic_on(
bg = "auto",
fg = "auto",
accent = "auto",
font = NA,
sequential = sequential_gradient(),
qualitative = okabe_ito(),
inherit = FALSE
)
thematic_off()
thematic_theme(
bg = "auto",
fg = "auto",
accent = "auto",
font = NA,
sequential = sequential_gradient(),
qualitative = okabe_ito(),
inherit = FALSE
)
thematic_shiny(
bg = "auto",
fg = "auto",
accent = "auto",
font = NA,
sequential = sequential_gradient(),
qualitative = okabe_ito(),
inherit = FALSE,
session = shiny::getDefaultReactiveDomain()
)
thematic_rmd(
bg = "auto",
fg = "auto",
accent = "auto",
font = NA,
sequential = sequential_gradient(),
qualitative = okabe_ito(),
inherit = FALSE
)a background color.
a foreground color.
a color for making certain graphical markers 'stand out'
(e.g., the fitted line color for ggplot2::geom_smooth()).
Can be 2 colors for lattice (stroke vs fill accent).
a font_spec() object. If missing, font defaults are not altered.
a color palette for graphical markers that encode
numeric values. Can be a vector of color codes or a
sequential_gradient() object.
a color palette for graphical markers that encode
qualitative values (won't be used in ggplot2 when the number of data
levels exceeds the max allowed colors). Defaults to okabe_ito().
should non-specified values inherit from the previous theme?
see shiny::onStop().
thematic_theme() returns a theme object as a list (which can be
activated with thematic_with_theme() or thematic_set_theme()).
thematic_on(), thematic_off(), and thematic_shiny() all return
the previous global theme.
The bg, fg, accent, and font arguments all support a value of 'auto',
which are all resolved, at plot time, based on the execution environment. In a
shiny runtime, resolution of auto values should always work as expect; but
in other contexts, auto values may lead to wrong or surprising results. In that
case, auto resolution logic can be customized (see auto_config_set() for more details).
thematic_on() enables thematic in a global fashion (that is, it impacts all
future plots, up until thematic_off() is called). To use thematic in local fashion,
first create a theme with thematic_theme(), then provide it to thematic_with_theme()
(or similar). To use thematic in a global fashion up until a shiny
app exits, use thematic_shiny() (which cleans up after itself once the next shiny
app that exits using shiny::onStop()). To use thematic in a global fashion up until
a rmarkdown document finishes rendering, use thematic_rmd().
Colors (e.g., bg, fg, accent) may be any value understood by col2rgb()
or htmltools::parseCssColors() (i.e., may be any valid R or CSS color string).
# simple dark mode
thematic_on("black", "white")
plot(1:10)
plot(1:10, col = 1:10)
lattice::show.settings()
# use any hex color string
thematic_on("#444444", "#e4e4e4")
plot(1:10)
plot(1:10, col = 1:10)
lattice::show.settings()
# disables thematic (also restores global state)
thematic_off()
plot(1:10)
lattice::show.settings()
thematic_on("darkblue", "skyblue", "orange")
image(volcano)
image(volcano, col = thematic_get_option("sequential"))
lattice::show.settings()
thematic_off()