Rev 68948 | Rev 84327 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
% File src/library/grDevices/man/col2rgb.Rd% Part of the R package, https://www.R-project.org% Copyright 1995-2017 R Core Team% Distributed under GPL 2 or later\name{col2rgb}\alias{col2rgb}\title{Color to RGB Conversion}\description{\R color to RGB (red/green/blue) conversion.}\usage{col2rgb(col, alpha = FALSE)}\arguments{\item{col}{vector of any of the three kinds of \R color specifications,i.e., either a color name (as listed by \code{\link{colors}()}), ahexadecimal string of the form \code{"#rrggbb"} or\code{"#rrggbbaa"} (see \code{\link{rgb}}), or a positive integer\code{i} meaning \code{\link{palette}()[i]}.}\item{alpha}{logical value indicating whether the alpha channel (opacity)values should be returned.}}\details{\code{\link{NA}} (as integer or character) and \code{"NA"} mean transparent.Values of \code{col} not of one of these types are coerced: realvectors are coerced to integer and other types to character. (factorsare coerced to character: in all other cases the class isignored when doing the coercion.)Zero and negative values of \code{col} are an error.}\value{An integer matrix with three or four (for \code{alpha = TRUE}) rowsand number of columns the length of \code{col}. If \code{col} hasnames these are used as the column names of the return value.}\author{Martin Maechler and the R core team.}\seealso{\code{\link{rgb}}, \code{\link{colors}}, \code{\link{palette}}, etc.The newer, more flexible interface, \code{\link{convertColor}()}.}\examples{col2rgb("peachpuff")col2rgb(c(blu = "royalblue", reddish = "tomato")) # note: colnamescol2rgb(1:8) # the ones from the palette() (if the default)col2rgb(paste0("gold", 1:4))col2rgb("#08a0ff")## all three kinds of color specifications:col2rgb(c(red = "red", hex = "#abcdef"))col2rgb(c(palette = 1:3))##-- NON-INTRODUCTORY examples --grC <- col2rgb(paste0("gray", 0:100))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) <- cct(crgb) # The whole tableccodes <- 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)\dontrun{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])}}}\keyword{color}\keyword{dplot}