Compute color sequences by linear interpolation based on a continuous color scheme between certain start and end colors. Color sequences may thereby be computed in the HCL or RGB color space.

colSequence(p, start, end, space = c("hcl", "rgb"), ...)

colSequenceRGB(p, start, end, fixup = TRUE, ...)

colSequenceHCL(p, start, end, fixup = TRUE, ...)

Arguments

p

a numeric vector with values between 0 and 1 giving values to be used for interpolation between the start and end color (0 corresponds to the start color, 1 to the end color).

start, end

the start and end color, respectively. For HCL colors, each can be supplied as a vector of length three (hue, chroma, luminance) or an object of class "colorspace::polarLUV()". For RGB colors, each can be supplied as a character string, a vector of length three (red, green, blue) or an object of class "colorspace::RGB()".

space

character string; if start and end are both numeric, this determines whether they refer to HCL or RGB values. Possible values are "hcl" (for the HCL space) or "rgb" (for the RGB space).

...

for colSequence, additional arguments to be passed to colSequenceHCL or colSequenceRGB. For colSequenceHCL and colSequenceRGB, additional arguments to be passed to colorspace::hex().

fixup

a logical indicating whether the colors should be corrected to valid RGB values (see colorspace::hex()).

Value

A character vector containing hexadecimal strings of the form "#RRGGBB".

References

Zeileis, A., Hornik, K., Murrell, P. (2009) Escaping RGBland: Selecting colors for statistical graphics. Computational Statistics & Data Analysis, 53 (9), 1259–1270.

Author

Andreas Alfons

Examples


p <- c(0, 0.3, 0.55, 0.8, 1)

## HCL colors
colSequence(p, c(0, 0, 100), c(0, 100, 50))
#> [1] "#FFFFFF" "#FAC8D1" "#F09AAB" "#E16A86" "#D33F6A"
colSequence(p, polarLUV(L=90, C=30, H=90), c(0, 100, 50))
#> [1] "#E2E6BD" "#DBBD80" "#DB975E" "#D86B5B" "#D33F6A"

## RGB colors
colSequence(p, c(1, 1, 1), c(1, 0, 0), space="rgb")
#> [1] "#FFFFFF" "#FFDADA" "#FFB3B3" "#FF7C7C" "#FF0000"
colSequence(p, RGB(1, 1, 0), "red")
#> [1] "#FFFF00" "#FFDA00" "#FFB300" "#FF7C00" "#FF0000"