| Palettes {grDevices} | R Documentation |
Create a vector of n “contiguous” colors.
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)
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 argument gamma in
hsv. |
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.
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.
A character vector, cv, of color names. This can be used
either to create a user–defined color palette for subsequent
graphics by palette(cv), a col= specification
in graphics functions or in par.
colors, palette, hsv,
rgb, gray and col2rgb for
translating to RGB numbers.
require(graphics)
# A Color Wheel
pie(rep(1,12), col=rainbow(12))
##------ Some palettes ------------
demo.pal <-
function(n, border = if (n<32) "light gray" else NA,
main = paste("color palettes; n=",n),
ch.col = c("rainbow(n, start=.7, end=.1)", "heat.colors(n)",
"terrain.colors(n)", "topo.colors(n)", "cm.colors(n)"))
{
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=main)
for (k in 1:nt) {
rect(i-.5, (k-1)*j+ dy, i+.4, k*j,
col = eval(parse(text=ch.col[k])), border = border)
text(2*j, k * j +dy/4, ch.col[k])
}
}
n <- if(.Device == "postscript") 64 else 16
# Since for screen, larger n may give color allocation problem
demo.pal(n)