Type: | Package |
Title: | Lightweight Repackaging of 'Themes' for 'ggplot2' |
Version: | 0.0.3 |
Date: | 2025-03-29 |
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'. |
URL: | https://github.com/eddelbuettel/tinythemes |
BugReports: | https://github.com/eddelbuettel/tinythemes/issues |
License: | MIT + file LICENSE |
Imports: | ggplot2 |
Suggests: | hrbrthemes, patchwork |
RoxygenNote: | 7.3.2 |
Encoding: | UTF-8 |
NeedsCompilation: | no |
Packaged: | 2025-03-29 13:49:32 UTC; edd |
Author: | Dirk Eddelbuettel |
Maintainer: | Dirk Eddelbuettel <edd@debian.org> |
Repository: | CRAN |
Date/Publication: | 2025-03-29 14:10:02 UTC |
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'.
Package Content
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'
Maintainer
Dirk Eddelbuettel <edd@debian.org>
Author(s)
Dirk Eddelbuettel [aut, cre] (<https://orcid.org/0000-0001-6419-907X>), Bob Rudis [aut] (<https://orcid.org/0000-0001-5670-2640>)
A precise & pristine ggplot2 theme with opinionated defaults and an emphasis on typography
Description
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.
Usage
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
)
Arguments
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 |
Value
A ggplot2-compatible 'theme' data structure is returned for use in standard ggplot2 usage.
Why Roboto Condensed?
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.
Examples
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(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())
}