| Title: | Additional Themes, Theme Components and Utilities for 'ggplot2' |
|---|---|
| Description: | A compilation of extra 'ggplot2' themes, scales and utilities, including a spell check function for plot label fields and an overall emphasis on typography. A copy of the 'Google' font 'Roboto Condensed' <https://github.com/google/roboto/> is also included along with a copy of the 'IBM' 'Plex Sans' <https://github.com/IBM/type>, 'Titillium Web' <https://fonts.google.com/specimen/Titillium+Web>, and 'Public Sans' <https://github.com/uswds/public-sans/> fonts are also included to support their respective typography-oriented themes. |
| Authors: | Bob Rudis [aut, cre] (ORCID: <https://orcid.org/0000-0001-5670-2640>), Patrick Kennedy [ctb], Philipp Reiner [ctb], Dan Wilson [ctb] (Secondary axis support), Xavier Adam [ctb], Google [cph] (Roboto Condensed & Titillium Web Fonts), IBM [cph] (Plex Sans Font), Impallari Type [cph] (Public Sans Font), Jacob Barnett [ctb], Thomas J. Leeper [ctb] (ORCID: <https://orcid.org/0000-0003-4097-6326>), Joris Meys [ctb] |
| Maintainer: | Bob Rudis <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.8.0 |
| Built: | 2026-05-22 08:59:22 UTC |
| Source: | https://github.com/hrbrmstr/hrbrthemes |
A covenience function intended for basic, fixed-scale plots only (i.e. does not handle
free scales in facets).
You need to pass in a ggplot2 object to this function. It can't be +'d in a chain
of geoms, coords, scales, themes, etc. It also builds the plot (but does not display
it) so if the plt takes a while (i.e. has lots of data or transforms) this will also
take a while.
flush_ticks(gg, flush = "XY", plot = TRUE, cat = TRUE)flush_ticks(gg, flush = "XY", plot = TRUE, cat = TRUE)
gg |
ggplot2 plot object |
flush |
either " |
plot |
if |
cat |
if |
ggplot2 object with theme() elements added
Intended for basic, fixed-scale plots only (i.e. does not handle free scales in facets).
font_an == "Arial Narrow"
font_anfont_an
length 1 character vector
font_es == "EconSansCndLig"
font_es_bold == "EconSansCndBol"
font_es_light == "EconSansCndLig"
font_es font_es_bold font_es_lightfont_es font_es_bold font_es_light
length 1 character vector
font_es_bold (a.k.a. "EconSansCndBol") is not available on
Windows and will throw a warning if used in plots.
font_es_light (a.k.a. "EconSansCndLig") is not available on
Windows and will throw a warning if used in plots.
font_ps == "IBMPlexSans"
font_ps_light == "IBMPlexSans-Light"
font_ps font_ps_lightfont_ps font_ps_light
length 1 character vector
font_ps_light (a.k.a. "IBMPlexSans-Light") is not available on
Windows and will throw a warning if used in plots.
font_pub == "Public Sans"
font_pub_bold == "Public Sans Bold"
font_pub_light == "Public Sans Light"
font_pub_thin == "Public Sans Thin"
font_pub font_pub_bold font_pub_light font_pub_thinfont_pub font_pub_bold font_pub_light font_pub_thin
length 1 character vector
font_pub_bold (a.k.a. "Public Sans Bold") is not available on
Windows and will throw a warning if used in plots.
font_rc == "Roboto Condensed"
font_fc_light == "Roboto Condensed Light"
font_rc font_rc_lightfont_rc font_rc_light
length 1 character vector
font_rc_light (a.k.a. "Roboto Condensed Light") is not available on
Windows and will throw a warning if used in plots.
font_th == "BF Tiny Hand"
font_thfont_th
length 1 character vector
font_tw == "Titillium Web"
font_tw_light == "Titillium Web Bold"
font_tw_light == "Titillium Web Light"
font_tw font_tw_bold font_tw_lightfont_tw font_tw_bold font_tw_light
length 1 character vector
font_tw_light (a.k.a. "Titillium Web Bold") is not available on
Windows and will throw a warning if used in plots.
font_tw_light (a.k.a. "Titillium Web Light") is not available on
Windows and will throw a warning if used in plots.
FT color palette
ft_cols ft_text_colft_cols ft_text_col
An object of class list of length 9.
don't forget you can use scales::alpha() with these colors
Change geom defaults from black to custom lights for the FT theme
ft_geom_defaults()ft_geom_defaults()
A bright qualitative color palette
ft_pal()ft_pal()
library(scales) scales::show_col(ft_pal()(8))library(scales) scales::show_col(ft_pal()(8))
Due to the way ggplot2 objects are created, this has to be used in a standalone context.
gg_check(gg, dict, ignore)gg_check(gg, dict, ignore)
gg |
ggplot2 object |
dict |
a dictionary object or string which can be passed to hunspell::dictionary.
Defaults to |
ignore |
character vector with additional approved words added to the dictionary.
Defaults to |
Current functionality only looks for misspelled words in the labels of ggplot2 objects. When misspelled words are found, a message is printed with the words and the label that they are in. No messages will be printed if there are no misspelled words.
the object that was passed in
library(ggplot2) df <- data.frame(x=c(20, 25, 30), y=c(4, 4, 4), txt=c("One", "Two", "Three")) # not piping ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="This is some txt", y="This is more text", title="Thisy is a titlle", subtitle="This is a subtitley", caption="This is a captien") -> gg gg_check(gg)library(ggplot2) df <- data.frame(x=c(20, 25, 30), y=c(4, 4, 4), txt=c("One", "Two", "Three")) # not piping ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="This is some txt", y="This is more text", title="Thisy is a titlle", subtitle="This is a subtitley", caption="This is a captien") -> gg gg_check(gg)
The following functions are imported and then re-exported from the hrbrthemes package to enable use of the magrittr pipe operator with no additional library calls
Roboto Condensed is a trademark of Google.
import_econ_sans()import_econ_sans()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
IBM Plex Sans is a trademark of IBM and distributed under the SIL Open Font License, Version 1.1.
import_plex_sans()import_plex_sans()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
Public Sans is Copyright 2015 Impallari Type and licensed under the SIL Open Font License, Version 1.1
import_public_sans()import_public_sans()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
Roboto Condensed is a trademark of Google.
import_roboto_condensed()import_roboto_condensed()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
Titillium Web is a trademark of Google.
import_tinyhand()import_tinyhand()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
Titillium Web is a trademark of Google.
import_titillium_web()import_titillium_web()
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.
This will take care of ensuring PDF/PostScript usage. The location of the font directory is displayed after the base import is complete. It is highly recommended that you install them on your system the same way you would any other font you wish to use in other programs.
Template for creating an R markdown document with an emphasis on typography
ipsum( number_sections = FALSE, fig_width = 7, fig_height = 5, fig_retina = if (!fig_caption) 2, fig_caption = FALSE, dev = "png", smart = TRUE, self_contained = TRUE, highlight = "default", mathjax = "default", extra_dependencies = NULL, css = NULL, includes = NULL, keep_md = FALSE, lib_dir = NULL, md_extensions = NULL, pandoc_args = NULL, toc = FALSE, toc_depth = 2, ... )ipsum( number_sections = FALSE, fig_width = 7, fig_height = 5, fig_retina = if (!fig_caption) 2, fig_caption = FALSE, dev = "png", smart = TRUE, self_contained = TRUE, highlight = "default", mathjax = "default", extra_dependencies = NULL, css = NULL, includes = NULL, keep_md = FALSE, lib_dir = NULL, md_extensions = NULL, pandoc_args = NULL, toc = FALSE, toc_depth = 2, ... )
number_sections |
|
fig_width |
Default width (in inches) for figures |
fig_height |
Default height (in inches) for figures |
fig_retina |
Scaling to perform for retina displays (defaults to 2, which
currently works for all widely used retina displays). Set to |
fig_caption |
|
dev |
Graphics device to use for figure output (defaults to png) |
smart |
Produce typographically correct output, converting straight
quotes to curly quotes, |
self_contained |
Produce a standalone HTML file with no external dependencies, using data: URIs to incorporate the contents of linked scripts, stylesheets, images, and videos. Note that even for self contained documents MathJax is still loaded externally (this is necessary because of its size). |
highlight |
Syntax highlighting style. Supported styles include
"default", "tango", "pygments", "kate", "monochrome", "espresso", "zenburn",
"haddock", and "textmate". Pass |
mathjax |
Include mathjax. The "default" option uses an https URL from a
MathJax CDN. The "local" option uses a local version of MathJax (which is
copied into the output directory). You can pass an alternate URL or pass
|
extra_dependencies, ...
|
Additional function arguments to pass to the base R Markdown HTML output formatter |
css |
One or more css files to include |
includes |
Named list of additional content to include within the
document (typically created using the |
keep_md |
Keep the markdown file generated by knitting. |
lib_dir |
Directory to copy dependent HTML libraries (e.g. jquery,
bootstrap, etc.) into. By default this will be the name of the document with
|
md_extensions |
Markdown extensions to be added or removed from the
default definition or R Markdown. See the |
pandoc_args |
Additional command line options to pass to pandoc |
toc, toc_depth
|
TOC params |
A muted, qualitative color palette
ipsum_pal()ipsum_pal()
library(scales) scales::show_col(ipsum_pal()(9))library(scales) scales::show_col(ipsum_pal()(9))
Template for creating an R markdown documents with an emphasis on typography
ipsum_pdf(...)ipsum_pdf(...)
... |
Arguments to |
R Markdown output format to pass to render
Change geom defaults from black to white for the modern theme
modern_geom_defaults()modern_geom_defaults()
See ft_pal().
scale_colour_ft(...) scale_color_ft(...) scale_fill_ft(...)scale_colour_ft(...) scale_color_ft(...) scale_fill_ft(...)
... |
Arguments passed on to
|
See ipsum_pal().
scale_colour_ipsum(...) scale_color_ipsum(...) scale_fill_ipsum(...)scale_colour_ipsum(...) scale_color_ipsum(...) scale_fill_ipsum(...)
... |
Arguments passed on to
|
The _comma ones set comma format for axis text and expand=c(0,0) (you need to set limits).
scale_x_percent( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "bottom", sec.axis = waiver(), accuracy = 1, scale = 100, prefix = "", suffix = "%", big.mark = " ", decimal.mark = ".", trim = TRUE, ... ) scale_y_percent( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "left", sec.axis = waiver(), accuracy = 1, scale = 100, prefix = "", suffix = "%", big.mark = " ", decimal.mark = ".", trim = TRUE, ... ) scale_x_comma( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "bottom", sec.axis = waiver(), accuracy = 1, scale = 1, prefix = "", suffix = "", big.mark = ",", decimal.mark = ".", trim = TRUE, ... ) scale_y_comma( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "left", sec.axis = waiver(), accuracy = 1, scale = 1, prefix = "", suffix = "", big.mark = ",", decimal.mark = ".", trim = TRUE, ... )scale_x_percent( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "bottom", sec.axis = waiver(), accuracy = 1, scale = 100, prefix = "", suffix = "%", big.mark = " ", decimal.mark = ".", trim = TRUE, ... ) scale_y_percent( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "left", sec.axis = waiver(), accuracy = 1, scale = 100, prefix = "", suffix = "%", big.mark = " ", decimal.mark = ".", trim = TRUE, ... ) scale_x_comma( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "bottom", sec.axis = waiver(), accuracy = 1, scale = 1, prefix = "", suffix = "", big.mark = ",", decimal.mark = ".", trim = TRUE, ... ) scale_y_comma( name = waiver(), breaks = waiver(), minor_breaks = waiver(), guide = waiver(), n.breaks = NULL, labels, limits = NULL, expand = c(0.01, 0), oob = censor, na.value = NA_real_, trans = "identity", position = "left", sec.axis = waiver(), accuracy = 1, scale = 1, prefix = "", suffix = "", big.mark = ",", decimal.mark = ".", trim = TRUE, ... )
name |
The name of the scale. Used as axis or legend title. If
|
breaks |
One of:
|
minor_breaks |
One of:
|
guide |
guide A function used to create a guide or its name. See |
n.breaks |
An integer guiding the number of major breaks. The algorithm may choose a
slightly different number to ensure nice break labels. Will only have an effect if
|
labels |
Specifying overrides the default format (i.e. you really don't
want to do that). |
limits |
A numeric vector of length two providing limits of the scale.
Use |
expand |
same as in ggplot2 |
oob |
Function that handles limits outside of the scale limits (out of bounds). The default replaces out of bounds values with NA. |
na.value |
If |
trans |
Either the name of a transformation object, or the object itself. Built-in transformations include "asn", "atanh", "boxcox", "exp", "identity", "log", "log10", "log1p", "log2", "logit", "probability", "probit", "reciprocal", "reverse" and "sqrt". |
position |
The position of the axis. "left" or "right" for vertical scales, "top" or "bottom" for horizontal scales |
sec.axis |
specify a secondary axis |
accuracy, scale, prefix, suffix, big.mark, decimal.mark, trim
|
See [scales::comma_format()] or [scales::percent_format()] |
... |
passed on to [scales::comma_format()] or [scales::percent_format()] |
The _percent ones set precent format for axis text and expand=c(0,0) (you need to set limits).
You should import_roboto_condensed() first and also install the fonts on your
system before trying to use this theme.
theme_ft_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), grid = TRUE, axis = FALSE, ticks = FALSE ) theme_modern_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), grid = TRUE, 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 )theme_ft_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), grid = TRUE, axis = FALSE, ticks = FALSE ) theme_modern_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), grid = TRUE, 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 justificationk one of |
plot_margin |
plot margin (specify with ggplot2::margin) |
grid |
panel grid ( |
axis |
add x or y axes? |
ticks |
ticks if |
panel_spacing |
panel spacing (use |
grid_col |
grid color |
axis_col |
axis color |
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.
It's free, has tolerable kerning pairs and multiple weights. It's also different than Arial Narrow and the fonts most folks use in ggplot2 charts.
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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()) ## End(Not run)
Also has a "dark" / "modern" version for the new RStudio theme
theme_ipsum( base_family = "Arial Narrow", base_size = 11.5, plot_title_family = base_family, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = base_family, subtitle_size = 12, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = base_family, caption_size = 9, caption_face = "italic", caption_margin = 10, axis_text_size = base_size, axis_title_family = subtitle_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_ipsum( base_family = "Arial Narrow", base_size = 11.5, plot_title_family = base_family, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = base_family, subtitle_size = 12, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = base_family, caption_size = 9, caption_face = "italic", caption_margin = 10, axis_text_size = base_size, axis_title_family = subtitle_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), 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 margi |
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 |
grid_col, axis_col
|
grid & axis colors; both default to |
grid |
panel grid ( |
axis |
add x or y axes? |
ticks |
ticks if |
First and foremost, Arial Narrow is generally installed by default or readily available on any modern system, so it's "free"-ish; plus, it is a condensed font with solid default kerning pairs and geometric numbers.
theme_ipsum
The function is setup in such a way that you can customize your own one by just wrapping the call and changing the parameters. See source for examples.
There are distinctions between font names and various devices. Names that work
for display graphics devices and bitmap ones such as png may not work well
for PostScript or PDF ones. You may need two versions of a font-based
theme function for them to work in a particular situation. This situation
usually only arises when using a newer font with many weights but somewhat
irregular internal font name patterns.
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.
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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() # seminal bar chart update_geom_font_defaults() count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), 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(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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() # seminal bar chart update_geom_font_defaults() count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), 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(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)
You should import_econ_sans() first and also install the fonts on your
system before trying to use this theme.
theme_ipsum_es( base_family = "EconSansCndReg", base_size = 11.5, plot_title_family = "EconSansCndBol", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "EconSansCndLig" else "EconSansCndLig", 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") "EconSansCndLig" else "EconSansCndLig", 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_es( base_family = "EconSansCndReg", base_size = 11.5, plot_title_family = "EconSansCndBol", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "EconSansCndLig" else "EconSansCndLig", 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") "EconSansCndLig" else "EconSansCndLig", 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 justificationk 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 |
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.
It's free, has tolerable kerning pairs and multiple weights. It's also different than Arial Narrow and the fonts most folks use in ggplot2 charts.
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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_es() # seminal bar chart # note: may need to make this font_es on Windows update_geom_font_defaults(family=font_es_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_es(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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_es() # seminal bar chart # note: may need to make this font_es on Windows update_geom_font_defaults(family=font_es_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_es(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)
You should import_plex_sans() first and also install the fonts on your
system before trying to use this theme.
theme_ipsum_ps( base_family = "IBMPlexSans", base_size = 11.5, plot_title_family = "IBMPlexSans-Bold", plot_title_size = 18, plot_title_face = "plain", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "IBMPlexSans" else "IBMPlexSans-Light", subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = "IBMPlexSans-Medium", strip_text_size = 12, strip_text_face = "plain", caption_family = if (.Platform$OS.type == "windows") "IBMPlexSans" else "IBMPlexSans-Thin", caption_size = 9, caption_face = "plain", caption_margin = 10, axis_text_size = 9, axis_title_family = base_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_ipsum_ps( base_family = "IBMPlexSans", base_size = 11.5, plot_title_family = "IBMPlexSans-Bold", plot_title_size = 18, plot_title_face = "plain", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "IBMPlexSans" else "IBMPlexSans-Light", subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = "IBMPlexSans-Medium", strip_text_size = 12, strip_text_face = "plain", caption_family = if (.Platform$OS.type == "windows") "IBMPlexSans" else "IBMPlexSans-Thin", caption_size = 9, caption_face = "plain", caption_margin = 10, axis_text_size = 9, axis_title_family = base_family, axis_title_size = 9, axis_title_face = "plain", axis_title_just = "rt", plot_margin = margin(30, 30, 30, 30), 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 justificationk one of |
plot_margin |
plot margin (specify with ggplot2::margin) |
grid_col |
grid color |
grid |
panel grid ( |
axis_col |
axis color |
axis |
add x or y axes? |
ticks |
ticks if |
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.
It's free, has tolerable kerning pairs and multiple weights. It's also different "not Helvetica".
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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()) ## End(Not run)
You should import_public_sans() first and also install the fonts on your
system before trying to use this theme.
theme_ipsum_pub( base_family = "Public Sans", base_size = 10.5, plot_title_family = if (.Platform$OS.type == "windows") "Public Sans" else "Public Sans Bold", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Public Sans Thin" else "Public Sans Thin", 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") "Public Sans Thin" else "Public Sans Thin", 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), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_ipsum_pub( base_family = "Public Sans", base_size = 10.5, plot_title_family = if (.Platform$OS.type == "windows") "Public Sans" else "Public Sans Bold", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Public Sans Thin" else "Public Sans Thin", 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") "Public Sans Thin" else "Public Sans Thin", 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), 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 justificationk one of |
plot_margin |
plot margin (specify with ggplot2::margin) |
grid_col |
grid color |
grid |
panel grid ( |
axis_col |
axis color |
axis |
add x or y axes? |
ticks |
ticks if |
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.
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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_pub() # seminal bar chart update_geom_font_defaults(family=font_pub) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_pub(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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_pub() # seminal bar chart update_geom_font_defaults(family=font_pub) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_pub(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)
You should import_titillium_web() first and also install the fonts on your
system before trying to use this theme.
theme_ipsum_tw( base_family = "Titillium Web", base_size = 10.5, plot_title_family = if (.Platform$OS.type == "windows") "Titillium Web" else "Titillium Web Bold", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Titillium Web" else "Titillium Web 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") "Titillium Web" else "Titillium Web 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), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_ipsum_tw( base_family = "Titillium Web", base_size = 10.5, plot_title_family = if (.Platform$OS.type == "windows") "Titillium Web" else "Titillium Web Bold", plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = if (.Platform$OS.type == "windows") "Titillium Web" else "Titillium Web 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") "Titillium Web" else "Titillium Web 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), 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 justificationk one of |
plot_margin |
plot margin (specify with ggplot2::margin) |
grid_col |
grid color |
grid |
panel grid ( |
axis_col |
axis color |
axis |
add x or y axes? |
ticks |
ticks if |
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.
It's free, has tolerable kerning pairs and multiple weights. It's also different than Arial Narrow and the fonts most folks use in ggplot2 charts.
## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_tw(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)## Not run: library(ggplot2) library(dplyr) # seminal scatterplot ggplot(mtcars, aes(mpg, wt)) + geom_point() + labs(x="Fuel effiiency (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 update_geom_font_defaults(family=font_rc_light) count(mpg, class) %>% ggplot(aes(class, n)) + geom_col() + geom_text(aes(label=n), nudge_y=3) + labs(x="Fuel effiiency (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_tw(grid="Y") + theme(axis.text.y=element_blank()) ## End(Not run)
You should import_tinyhand() first and also install the fonts on your
system before trying to use this theme.
theme_tinyhand( base_family = font_th, base_size = 10.5, plot_title_family = font_th, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = font_th, subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = font_th, 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), grid_col = "#cccccc", grid = TRUE, axis_col = "#cccccc", axis = FALSE, ticks = FALSE )theme_tinyhand( base_family = font_th, base_size = 10.5, plot_title_family = font_th, plot_title_size = 18, plot_title_face = "bold", plot_title_margin = 10, subtitle_family = font_th, subtitle_size = 13, subtitle_face = "plain", subtitle_margin = 15, strip_text_family = base_family, strip_text_size = 12, strip_text_face = "plain", caption_family = font_th, 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), 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 justificationk one of |
plot_margin |
plot margin (specify with ggplot2::margin) |
grid_col |
grid color |
grid |
panel grid ( |
axis_col |
axis color |
axis |
add x or y axes? |
ticks |
ticks if |
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.
It's free, has tolerable kerning pairs and multiple weights. It's also different than Arial Narrow and the fonts most folks use in ggplot2 charts.
Updates [ggplot2::geom_label] and [ggplot2::geom_text] font defaults
update_geom_font_defaults( family = "Arial Narrow", face = "plain", size = 3.5, color = "#2b2b2b" )update_geom_font_defaults( family = "Arial Narrow", face = "plain", size = 3.5, color = "#2b2b2b" )
family, face, size, color
|
font family name, face, size and color |