strip_themed: Strip with themed boxes and texts

View source: R/strip_themed.R

strip_themedR Documentation

Strip with themed boxes and texts

Description

A style of strips with individually themed strips.

Usage

strip_themed(
  clip = "inherit",
  size = "constant",
  text_x = NULL,
  text_y = NULL,
  background_x = NULL,
  background_y = NULL,
  by_layer_x = FALSE,
  by_layer_y = FALSE
)

Arguments

clip

A character(1) that controls whether text labels are clipped to the background boxes. Can be either "inherit" (default), "on" or "off".

size

A character(1) stating that the strip margins in different layers remain "constant" or are "variable".

text_x, text_y

A list() with element_text() elements. See details.

background_x, background_y

A list() with element_rect() elements. See details.

by_layer_x, by_layer_y

A logical(1) that when TRUE, maps the different elements to different layers of the strip. When FALSE, maps the different elements to individual strips, possibly repeating the elements to match the number of strips through rep_len().

Details

With respect to the ⁠text_*⁠ and ⁠background_*⁠ arguments, they can be a list with (a mix of) the following objects:

  • NULL indicates that the global plot theme applies.

  • element_blank() omits drawing the background or text.

  • An element class object inheriting from the element_text or element_rect classes.

For constructing homogeneous lists of elements, the elem_list_text() and elem_list_rect() are provided for convenience.

Value

A StripThemed ggproto object that can be given as an argument to facets in ggh4x.

See Also

Other strips: strip_nested(), strip_split(), strip_vanilla()

Examples

# Some simple plot
p <- ggplot(mpg, aes(displ, hwy)) +
  geom_point()

# Set some theming options, we can use `element_blank()`
backgrounds <- list(element_blank(), element_rect(fill = "dodgerblue"))
# Or we could use `NULL` to use the global theme
texts <- list(element_text(colour = "red"), NULL, element_text(face = "bold"))

# Elements are repeated until the fit the number of facets
p + facet_wrap2(
  vars(drv, year),
  strip = strip_themed(
    background_x = backgrounds,
    text_x = texts
  )
)

# Except when applied to each layer instead of every strip
p + facet_wrap2(
  vars(drv, year),
  strip = strip_themed(
    background_x = backgrounds,
    text_x = texts,
    by_layer_x = TRUE
  )
)

# To conveniently distribute arguments over a list of the same elements,
# you can use the following wrappers:
p + facet_wrap2(
  vars(drv, year),
  strip = strip_themed(
    text_x = elem_list_text(colour = c("blue", "red")),
    background_x = elem_list_rect(fill = c("white", "grey80")),
    by_layer_x = TRUE
  )
)

ggh4x documentation built on Aug. 31, 2023, 1:08 a.m.