Identify a suitable font color (black or white) given a background HEX color
Source:R/hex_bw.R
hex_bw.RdYou could use auto_contrast as a shortcut of
aes(colour = after_scale(hex_bw(.data$fill))). You should use !!! to
inject it within ggplot2::aes() (see examples).
hex_bw_threshold() is a variation of hex_bw(). For values below
threshold, black ("#000000") will always be returned, regardless of
hex_code.
Source
Adapted from saros for hex_code() and from
https://github.com/teunbrand/ggplot_tricks?tab=readme-ov-file#text-contrast
for auto_contrast.
Examples
hex_bw("#0dadfd")
#> [1] "#000000"
library(ggplot2)
ggplot(diamonds) +
aes(x = cut, fill = color, label = after_stat(count)) +
geom_bar() +
geom_text(
mapping = aes(color = after_scale(hex_bw(.data$fill))),
position = position_stack(.5),
stat = "count",
size = 2
)
ggplot(diamonds) +
aes(x = cut, fill = color, label = after_stat(count)) +
geom_bar() +
geom_text(
mapping = auto_contrast,
position = position_stack(.5),
stat = "count",
size = 2
)
ggplot(diamonds) +
aes(x = cut, fill = color, label = after_stat(count), !!!auto_contrast) +
geom_bar() +
geom_text(
mapping = auto_contrast,
position = position_stack(.5),
stat = "count",
size = 2
)