% Generated by roxygen2: do not edit by hand % Please edit documentation in R/theme-ipsum.r \name{theme_ipsum} \alias{theme_ipsum} \title{A precise & pristine \link{ggplot2} theme with opinionated defaults and an emphasis on typography} \usage{ 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 ) } \arguments{ \item{base_family, base_size}{base font family and size} \item{plot_title_family, plot_title_face, plot_title_size, plot_title_margin}{plot title family, face, size and margi} \item{subtitle_family, subtitle_face, subtitle_size}{plot subtitle family, face and size} \item{subtitle_margin}{plot subtitle margin bottom (single numeric value)} \item{strip_text_family, strip_text_face, strip_text_size}{facet label font family, face and size} \item{caption_family, caption_face, caption_size, caption_margin}{plot caption family, face, size and margin} \item{axis_text_size}{font size of axis text} \item{axis_title_family, axis_title_face, axis_title_size}{axis title font family, face and size} \item{axis_title_just}{axis title font justification, one of \verb{[blmcrt]}} \item{plot_margin}{plot margin (specify with \code{ggplot2::margin()})} \item{grid_col, axis_col}{grid & axis colors; both default to \verb{#cccccc}} \item{grid}{panel grid (\code{TRUE}, \code{FALSE}, or a combination of \code{X}, \code{x}, \code{Y}, \code{y})} \item{axis}{add x or y axes? \code{TRUE}, \code{FALSE}, "\code{xy}"} \item{ticks}{ticks if \code{TRUE} add ticks} } \description{ Also has a "dark" / "modern" version for the new RStudio theme } \section{Why Arial Narrow?}{ 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. } \section{Building upon \code{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. } \section{Gotchas}{ There are distinctions between font names and various devices. Names that work for display graphics devices and bitmap ones such as \code{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 \code{hrbrthemes.loadfonts} which -- if set to \code{TRUE} -- will call \code{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. } \examples{ \dontrun{ library(ggplot2) library(dplyr) # 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() # 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()) } }