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'. |
Authors: | Dirk Eddelbuettel [aut, cre] , Bob Rudis [aut] |
Maintainer: | Dirk Eddelbuettel <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.0.2 |
Built: | 2024-10-28 04:50:50 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'.
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] (<https://orcid.org/0000-0001-6419-907X>), Bob Rudis [aut] (<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 tilte 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 ggplot2::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) data.frame(table(mpg$class)) |> ggplot(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) data.frame(table(mpg$class)) |> ggplot(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()) }