hsv {grDevices}R Documentation

HSV Color Specification


Create a vector of colors from vectors specifying hue, saturation and value.


hsv(h = 1, s = 1, v = 1, gamma = 1, alpha)


h,s,v numeric vectors of values in the range [0,1] for “hue”, “saturation” and “value” to be combined to form a vector of colors. Values in shorter arguments are recycled.
gamma a “gamma correction” exponent, gamma
alpha numeric vector of values in the range [0,1] for alpha transparency channel (0 means transparent and 1 means opaque).


Semi-transparent colors (0 < alpha < 1) are supported only on a few devices: at the time of writing only on the pdf and (on MacOS X) quartz devices.


This function creates a vector of “colors” corresponding to the given values in HSV space. The values returned by hsv can be used with a col= specification in graphics functions or in par.

Gamma correction

For each color, (r,g,b) in RGB space (with all values in [0,1]), the final color corresponds to (r^{gamma}, g^{gamma}, b^{gamma}).

See Also

hcl for a perceptually based version of hsv(), rgb and rgb2hsv for RGB to HSV conversion; rainbow, gray.



## Look at gamma effect:
n <- 20;  y <- -sin(3*pi*((1:n)-1/2)/n)
op <- par(mfrow=c(3,2),mar=rep(1.5,4))
for(gamma in c(.4, .6, .8, 1, 1.2, 1.5))
  plot(y, axes = FALSE, frame.plot = TRUE,
       xlab = "", ylab = "", pch = 21, cex = 30,
       bg = rainbow(n, start=.85, end=.1, gamma = gamma),
       main = paste("Red tones;  gamma=",format(gamma)))

[Package grDevices version 2.5.0 Index]