Color Palettes
Usage
rainbow(n, s = 1, v = 1, start = 0, end = max(1,n - 1)/n, gamma = 1)
heat.colors(n)
terrain.colors(n)
topo.colors(n)
cm.colors(n)
Arguments
n
|
the number of colors (>= 1) to be in the palette.
|
s,v
|
the ``saturation'' and ``value'' to be used to
complete the HSV color descriptions.
|
start
|
the (corrected) hue in [0,1] at which the rainbow begins.
|
end
|
the (corrected) hue in [0,1] at which the rainbow ends.
|
gamma
|
the gamma correction, see hsv(.., gamma).
|
Description
These functions create a vector of n ``contiguous'' colors.
Conceptually, all of these functions actually use (parts of) a line
cut out of the 3-dimensional color space, parametrized by
hsv(h,s,v, gamma), where gamma=1 for the
foo.colors function, and hence,
equispaced hues in RGB space tend to cluster at
the red, green and blue primaries.Details
Some applications such as contouring require a palette
of colors which do not ``wrap around'' to give a final
color close to the starting one.
With rainbow, the parameters start and end can be used
to specify particular subranges of hues.
The following values can be used when generating
such a subrange:
red=0, yellow=1/6, green=2/6, cyan=3/6, blue=4/6 and magenta=5/6.Value
A character vector, cv, of color names. This can be used
either to create a userdefined color palette for subsequent
graphics by palette(cv), a col= specification
in graphics functions or in par.See Also
colors, palette, hsv,
rgb, gray.Examples
# A Color Wheel
piechart(rep(1,12), col=rainbow(12))
##------ Some palettes ------------
ch.col <- c("rainbow(n, start=.7, end=.1)", "heat.colors(n)",
"terrain.colors(n)", "topo.colors(n)", "cm.colors(n)")
n <- if(.Device == "postscript") 64 else 16
# Since for screen, larger n may give color allocation problem
nt <- length(ch.col)
i <- 1:n; j <- n / nt; d <- j/6; dy <- 2*d
plot(i,i+d, type="n", yaxt="n", ylab="", main=paste("color palettes; n=",n))
for (k in 1:nt) {
rect(i-.5,(k-1)*j+ dy, i+.4, k*j, col=eval(parse(text=ch.col[k])))
text(2*j, k * j +dy/4, ch.col[k])
}