HSLuv is a human-friendly way to describe hue, saturation, and luminance — three attributes of color. The R package includes functions to convert HSLuv colorspace to computer RGB, either as separate red, green, and blue values or as a hex code.
To install, you will need a working toolchain on your computer for compiling C++ code, and the R package devtools installed. Once those are working, simply run the following code in an R session:
devtools::install_github("ssp3nc3r/hsluv-rcpp", ref = "master")
Once the package is installed, the functions can be used to map data to perceptually uniform color, like so:
library(HSLuv)
# Create sample data encoded as hue, saturation, luminance
df <- expand.grid(H = c(20, 290),
S = seq(0, 100, by = 10),
L = seq(0, 100, by = 10))
# Convert HSLuv scaled values to RGB color space as hex code #RRGGBB
df$colors <- with(df, hsluv_hex(H, S, L) )
We can now graph colors encoded with said data:
library(ggplot2)
ggplot(df) +
theme_minimal() +
theme(panel.grid = element_blank(),
axis.text.x.top = element_blank()) +
geom_point(aes(L, S), color = '#eeeeee', fill = df$colors, size = 10, shape = 22) +
scale_x_continuous(breaks = seq(0, 100, by = 20),
sec.axis = sec_axis(~., name = 'Hue')) +
scale_y_continuous(breaks = seq(0, 100, by = 20)) + facet_wrap(~H) +
labs(x = 'Luminance',
y = 'Saturation')