col2rgb {base} | R Documentation |
Color to RGB Conversion
Description
“Any R color” to RGB (red/green/blue) conversion.
Usage
col2rgb(col)
Arguments
col |
vector of any of the three kind of R colors, i.e., either
a color name (an element of |
Details
For integer colors, 0
is shorthand for the current
par("bg")
, and NA
means “nothing” which
effectively does not draw the corresponding item.
For character colors, "NA"
is equivalent to NA
above.
Value
an integer matrix with three rows and number of columns the length
(and names if any) as col
.
Author(s)
Martin Maechler
See Also
rgb
, colors
, palette
, etc.
Examples
col2rgb("peachpuff")
col2rgb(c(blu = "royalblue", reddish = "tomato")) # names kept
col2rgb(1:8)# the ones from the palette() :
pp <- palette(); names(pp) <- pp # add & use names :
stopifnot(col2rgb(1:8) ==
print(col2rgb(pp)))
col2rgb(paste("gold", 1:4, sep=""))
stopifnot(col2rgb("#08a0ff") == c(8, 160, 255))
## all three kind of colors mixed :
col2rgb(c(red="red", palette= 1:3, hex="#abcdef"))
##-- NON-INTRODUCTORY examples --
grC <- col2rgb(paste("gray",0:100,sep=""))
stopifnot(grC["red",] == grC["green",],
grC["red",] == grC["blue",],
grC["red", 1:4] == c(0,3,5,8))
table(print(diff(grC["red",])))# `2' or `3': almost equidistant
## The `named' grays are in between {"slate gray" is not gray, strictly}
col2rgb(c(g66="gray66", darkg= "dark gray", g67="gray67",
g74="gray74", gray = "gray", g75="gray75",
g82="gray82", light="light gray", g83="gray83"))
crgb <- col2rgb(cc <- colors())
colnames(crgb) <- cc
t(crgb)## The whole table
ccodes <- c(256^(2:0) %*% crgb)## = internal codes
## How many names are `aliases' of each other:
table(tcc <- table(ccodes))
length(uc <- unique(sort(ccodes))) # 502
## All the multiply named colors:
mult <- uc[tcc >= 2]
cl <- lapply(mult, function(m) cc[ccodes == m])
names(cl) <- apply(col2rgb(sapply(cl, function(x)x[1])),
2, function(n)paste(n, collapse=","))
str(cl)
## Not run:
if(require(xgobi)) { ## Look at the color cube dynamically :
tc <- t(crgb[, !duplicated(ccodes)])
table(is.gray <- tc[,1] == tc[,2] & tc[,2] == tc[,3])# (397, 105)
xgobi(tc, color = c("gold", "gray")[1 + is.gray])
}
## End(Not run)