View source: R/manip_channel.R
channel | R Documentation |
Extract the value of a color channel or set it and therefore modify the color.
channel(x, model, channel) channel(x, model, channel) <- value
x |
vector of colors specified as hex strings or named R colors. |
model |
string defining the color model; valid models are |
channel |
string defining the channel within the color model. |
value |
the channel value to set; a number, the convention of which depends on the channel. |
For channel
, a vector of channel values, the convention of which depend on the channel.
For channel <-
, the updated object(s).
luminance
for relative brightness, which is slightly different from the perceived brightness (i.e. the value of the L channel in L*a*b* or HCL).
Other color manipulation functions:
average()
,
blend()
,
darken()
,
luminance()
,
mix()
,
saturate()
channel("pink", "rgb", "r") channel(colors()[1:5], "hcl", "l") # Colors along a HSV rainbow have very different lightness, # which makes them inapropriate for continuous color scales # In contrast, lightness should be constant along a HCL rainbow HSV_rainbow <- hsv(h=seq(0, 360, length.out=7), s=1, v=1) HCL_rainbow <- hcl(h=seq(0, 360, length.out=7), l=0.65) show_col(HSV_rainbow, HCL_rainbow) channel(HCL_rainbow, "hcl", "l") # NB: the subtle changes are caused by the round-trip conversion to R's # internal sRGB representation of colors. # make it more visual plot(channel(HSV_rainbow, "hcl", "l"), col=HSV_rainbow, pch=19, cex=2, type="b", ylab="Lightness") abline(h=0.65, lty="dotted") points(channel(HCL_rainbow, "hcl", "l"), col=HCL_rainbow, pch=19, cex=2, type="b") # Force a given lightness x_orig <- x <- HSV_rainbow channel(x, "hcl", "l") <- 0.5 show_col(x_orig, x) # Make all colors equally saturated x_orig <- x <- c("aliceblue", "aquamarine4", "coral", "blanchedalmond") channel(x, "hsv", "s") <- 0.5 show_col(x_orig, x) # Keep the lightness and saturation but change the hue # (also called "colorizing") x_orig <- x <- c("aliceblue", "aquamarine4", "coral", "blanchedalmond") channel(x, "hsv", "h") <- 240 # make all blue show_col(x_orig, x)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.