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')