Patterned Fills for 'ggplot2' and 'grid' Graphics.
fillpattern
Overview
fillpattern streamlines the process of adding distinctive yet unobtrusive geometric patterns in place of solid grob/geom fills. The resultant figures look just as professional when viewed by colorblind readers or when printed in black and white.
Compared to the similar ggpattern package, fillpattern:
- Has no dependencies beyond base R and
ggplot2. - Works with
ggplot2::geom_*functions. - Focuses on simple geometric patterns.
Installation
# Install the latest stable version from CRAN:
install.packages("fillpattern")
# Or the development version from GitHub:
install.packages("remotes")
remotes::install_github("cmmr/fillpattern")
Usage
Simply add scale_fill_pattern() to your ggplot.
library(ggplot2)
library(fillpattern)
ggplot(mpg, aes(x = class, color = drv, fill = drv)) +
geom_bar() +
scale_fill_pattern()

Works with geom_bar(), geom_boxplot(), geom_violin(), and other geom_* functions that accept a fill aesthetic.
grid grobs
Set fill = fill_pattern() in the grob’s graphical parameters.
library(grid)
library(fillpattern)
grid.newpage()
grid.circle( gp = gpar(fill = fill_pattern("grid")), x = 1/4, r = 3/8)
grid.rect( gp = gpar(fill = fill_pattern("fish")), width = 1/5, height = 3/4)
grid.polygon(gp = gpar(fill = fill_pattern("brick")), x = c(6,7,5)/8, y = c(7,1,1)/8)

Basic Patterns
Use any of these pattern names in fill_pattern() or scale_fill_pattern().

Modified Patterns
For each basic pattern, you can specify the foreground color, background color, line width/style, tile size/rotation, and more through arguments to fill_pattern() and scale_fill_pattern().
Most modifications can be specified as part of the pattern name (shown below).

For additional details, see the fill_pattern() and scale_fill_pattern() reference pages.