| Title: | Lightweight Repackaging of 'Themes' for 'ggplot2' |
|---|---|
| Description: | Themes for 'ggplot2' are a convenient way to style plots. The 'hrbrthemes' package contains a particularly nice one, but brings along a significant tail of dependencies. So this (currently experimental) package brings along just the 'theme_ipsum_rc' theme using the 'Roboto' 'Condensed' font. Should the font not be installed on your system, see the help in the package 'hrbrthemes' on how to install 'Roboto Condensed'. Note that 'hrbrthemes' is now archived at CRAN. |
| Authors: | Dirk Eddelbuettel [aut, cre] (ORCID: <https://orcid.org/0000-0001-6419-907X>), Bob Rudis [aut] (ORCID: <https://orcid.org/0000-0001-5670-2640>) |
| Maintainer: | Dirk Eddelbuettel <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.0.4.1 |
| Built: | 2026-05-15 06:02:03 UTC |
| Source: | https://github.com/eddelbuettel/tinythemes |
Themes for 'ggplot2' are a convenient way to style plots. The 'hrbrthemes' package contains a particularly nice one, but brings along a significant tail of dependencies. So this (currently experimental) package brings along just the 'theme_ipsum_rc' theme using the 'Roboto' 'Condensed' font. Should the font not be installed on your system, see the help in the package 'hrbrthemes' on how to install 'Roboto Condensed'. Note that 'hrbrthemes' is now archived at CRAN.
Index of help topics:
theme_ipsum_rc A precise & pristine ggplot2 theme with
opinionated defaults and an emphasis on
typography
tinythemes-package Lightweight Repackaging of 'Themes' for
'ggplot2'
Dirk Eddelbuettel <[email protected]>
Dirk Eddelbuettel [aut, cre] (ORCID: <https://orcid.org/0000-0001-6419-907X>), Bob Rudis [aut] (ORCID: <https://orcid.org/0000-0001-5670-2640>)
You should consult the documentation of the hrbrthemes package if
the font does not load properly. There is an option hrbrthemes.loadfonts which – if
set to TRUE – will call extrafont::loadfonts() to register non-core fonts with R
PDF & PostScript devices. If you are running under Windows, the package calls the same
function to register non-core fonts with the Windows graphics device.
theme_ipsum_rc( base_family = "Roboto Condensed", base_size = 11.5, plot_title_family = base_family, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Roboto Condensed" else "Roboto Condensed Light", subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = if (.Platform$OS.type == "windows") "Roboto Condensed" else "Roboto Condensed Light", caption_size = 9, caption_face = "plain", caption_margin = 10, axis_text_size = base_size, axis_title_family = base_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), panel_spacing = grid::unit(2, "lines"), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_ipsum_rc( base_family = "Roboto Condensed", base_size = 11.5, plot_title_family = base_family, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Roboto Condensed" else "Roboto Condensed Light", subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = if (.Platform$OS.type == "windows") "Roboto Condensed" else "Roboto Condensed Light", caption_size = 9, caption_face = "plain", caption_margin = 10, axis_text_size = base_size, axis_title_family = base_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), panel_spacing = grid::unit(2, "lines"), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )
base_family, base_size
|
base font family and size |
plot_title_family, plot_title_face, plot_title_size, plot_title_margin
|
plot title family, face, size and margin |
subtitle_family, subtitle_face, subtitle_size
|
plot subtitle family, face and size |
subtitle_margin |
plot subtitle margin bottom (single numeric value) |
strip_text_family, strip_text_face, strip_text_size
|
facet label font family, face and size |
caption_family, caption_face, caption_size, caption_margin
|
plot caption family, face, size and margin |
axis_text_size |
font size of axis text |
axis_title_family, axis_title_face, axis_title_size
|
axis title font family, face and size |
axis_title_just |
axis title font justification one of |
plot_margin |
plot margin (specify with margin) |
panel_spacing |
panel spacing (use |
grid_col |
grid color |
grid |
panel grid ( |
axis_col |
axis color |
axis |
add x or y axes? |
ticks |
ticks if |
A ggplot2-compatible 'theme' data structure is returned for use in standard ggplot2 usage.
It is free, has tolerable kerning pairs and multiple weights. It is also different than Arial Narrow and the fonts most folks use in ggplot2 charts.
if (interactive()) { # default postscript device used in tests does not have font library(ggplot2) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", title="Seminal ggplot2 scatterplot example", subtitle="A plot that is only useful for demonstration purposes", caption="Brought to you by the letter 'g'") + theme_ipsum_rc() # seminal bar chart # note: make this font_rc on Windows if (Sys.info()[["sysname"]] == "Windows") update_geom_font_defaults(family=font_rc_light) ggplot(as.data.frame(table(mpg$class)), aes(x = Var1, y = Freq)) + geom_col() + geom_text(aes(label = Freq), nudge_y=3) + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", title="Seminal ggplot2 bar chart example", subtitle="A plot that is only useful for demonstration purposes", caption="Brought to you by the letter 'g'") + theme_ipsum_rc(grid="Y") + theme(axis.text.y=element_blank()) }if (interactive()) { # default postscript device used in tests does not have font library(ggplot2) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", title="Seminal ggplot2 scatterplot example", subtitle="A plot that is only useful for demonstration purposes", caption="Brought to you by the letter 'g'") + theme_ipsum_rc() # seminal bar chart # note: make this font_rc on Windows if (Sys.info()[["sysname"]] == "Windows") update_geom_font_defaults(family=font_rc_light) ggplot(as.data.frame(table(mpg$class)), aes(x = Var1, y = Freq)) + geom_col() + geom_text(aes(label = Freq), nudge_y=3) + labs(x="Fuel efficiency (mpg)", y="Weight (tons)", title="Seminal ggplot2 bar chart example", subtitle="A plot that is only useful for demonstration purposes", caption="Brought to you by the letter 'g'") + theme_ipsum_rc(grid="Y") + theme(axis.text.y=element_blank()) }