A colour aesthetic to contrast with a fill aesthetic. Can be spliced into ggplot2::aes with rlang::!!!.
Examples
library(ggplot2)
library(dplyr)
#>
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#>
#> filter, lag
#> The following objects are masked from ‘package:base’:
#>
#> intersect, setdiff, setequal, union
library(stringr)
library(palmerpenguins)
set_blanket()
penguins |>
count(species, sex) |>
gg_col(
x = sex,
y = n,
col = species,
label = n,
position = position_dodge(preserve = "single"),
width = 0.75,
x_labels = \(x) str_to_sentence(x),
) +
geom_text(
mapping = aes_colour_contrast(),
position = position_dodge(width = 0.75, preserve = "single"),
vjust = 1.33,
show.legend = FALSE,
)
#> Scale for colour is already present.
#> Adding another scale for colour, which will replace the existing scale.
#> Warning: no non-missing arguments to max; returning -Inf
penguins |>
count(species, sex) |>
gg_col(
x = sex,
y = n,
col = species,
position = position_dodge(preserve = "single"),
width = 0.75,
x_labels = \(x) str_to_sentence(x),
mode = dark_mode_r(),
) +
geom_text(
mapping = aes(label = n, !!!aes_colour_contrast(dark = darkness[3], light = darkness[1])),
position = position_dodge(width = 0.75, preserve = "single"),
vjust = 1.33,
show.legend = FALSE,
)
#> Scale for colour is already present.
#> Adding another scale for colour, which will replace the existing scale.
#> Warning: no non-missing arguments to max; returning -Inf