Unified and automatic theming of ggplot2, lattice, and base R graphics.
thematic is not yet available on CRAN, but you can install it now with:
In addition, for the auto-theming integration with shiny, you currently need:
And, for auto-theming in
If you’d prefer to not install these experimental versions, and just want to play around with some thematic examples, take a test drive on RStudio Cloud:
thematic sets various graphing defaults based on a few different color and font settings. The main settings are background, foreground,
font. These particular setting here intentionally match the styling of thematic’s website.
library(thematic) thematic_on( bg = "#222222", fg = "white", accent = "#0CE3AC", font = font_spec("Oxanium", scale = 1.25) )
Now, any future plot(s) inherit these settings (at least until
thematic_off() is called):
In addition, thematic sets new defaults for qualitative color-scales (the default is based color-blind safe
okabe_ito() color palette, but this may be customized via the
qualitative argument to
It also sets new defaults for
sequential color scales based on the
fg (this default is also configurable via the
thematic also has the ability to automatically detect the relevant colors and fonts in some scenarios, based on the current plotting context. The
accent arguments all default to
'auto' because they generally work where available, but you currently must opt-in to font detection:
thematic_on(font = "auto")
Auto theming works best with a shiny runtime, but it can also work under certain conditions inside rmarkdown and RStudio. For a quick demonstration, here’s a shiny app styled with a dark background, light foreground, and a Google Font (e.g. Pacifico), thematic can automatically mimic those styles in the R plots.
If a Google Font (e.g., Oxanium, Pacifico, etc) which isn’t already known to R is requested, thematic attempts to download, cache, and register that font for use with showtext and ragg before plotting. That means, if you have showtext installed, Google Fonts work ‘out-of-the-box’ in shiny and rmarkdown. Moreover, shiny, rmarkdown, and RStudio can all be configured to use ragg as well, which can also render custom fonts. For more details, see the Google Font rendering sections of the shiny, rmarkdown, and RStudio articles.
Of course, you can also specify fonts that are already known to R without necessarily have showtext or ragg. If you’d like to use a font that isn’t already known to R (and isn’t a Google Font), point
sysfonts::font_add() (for showtext) or
systemfonts::register_font() (for ragg) to the font files.