Skip to Content

col2rgb {grDevices}

Color to RGB Conversion
Package: 
grDevices
Version: 
R 2.15.3

Description

R color to RGB (red/green/blue) conversion.

Usage

col2rgb(col, alpha = FALSE)

Arguments

col
vector of any of the three kinds of R color specifications, i.e., either a color name (as listed by colors()), a hexadecimal string of the form "#rrggbb" or "#rrggbbaa" (see rgb), or a positive integer i meaning palette()[i] or   (see ‘Details’). Non-character values are coerced to integers.
alpha
logical value indicating whether alpha channel (opacity) values should be returned.

Details

For integer colors,   is shorthand for the current par("bg") (and hence is only relevant to base graphics and not grid graphics, and is an error if graphics is not loaded: like par it will open a device if none is open). Its used is deprecated.

NA (as integer or character) and "NA" mean transparent.

Values

An integer matrix with three or four (foralpha = TRUE) rows and number of columns the length of col. If col has names these are used as the column names of the return value.

See Also

rgb, colors, palette, etc.

Examples

col2rgb("peachpuff")
col2rgb(c(blu = "royalblue", reddish = "tomato"))  # note: colnames
 
col2rgb(1:8)  # the ones from the palette() (if the default)
 
col2rgb(paste("gold", 1:4, sep = ""))
 
col2rgb("#08a0ff")
## all three kinds of color specifications:
col2rgb(c(red = "red", hex = "#abcdef"))
col2rgb(c(palette = 1:3))
 
##-- NON-INTRODUCTORY examples --
 
grC <- col2rgb(paste("gray", 0:100, sep = ""))
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 = ","))
utils::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)

Author(s)

Martin Maechler and the R core team.

Documentation reproduced from R 2.15.3. License: GPL-2.