Color mapping for R : col2rgb()
On Mon, 2 Apr 2001, Martin Maechler wrote:
This has been an old topic, brought up last year by
Jens Oehlschlaegel and even before by Ben Bolker and maybe others.
Over the weekend I've finally taken some time,
and have implemented one new function on the R level,
basically exposing the underlying C function str2col() [main/graphics.c]
col2rgb() accepts a vector of all three kind of R colors :
1:n = indices into palette()
name = an element of colors()
#rrggbb = character with the rgb hex code.
Per color, it returns an integer(3) vector c(red,green,blue)
with elements from 0:255.
Currently {in my implementation},
when
r <- col2rgb(col)
r is a list() of the same length as col, and r[[j]] = c(red_j, green_j, blue_j)
e.g.
> str(col2rgb(paste("gold", 1:4, sep="")))
List of 4
$ : int [1:3] 255 215 0
$ : int [1:3] 238 201 0
$ : int [1:3] 205 173 0
$ : int [1:3] 139 117 0
>
This has been the easiest way of a vectorizing implementation. Are the strong reasons why, e.g. a matrix should be returned instead ? The matrix can `easily' be built by, e.g. matrix(c(col2rgb(...) , recursive = TRUE), nrow = 3)) If it is felt that one always wanted this matrix (and dimnames, too), it would maybe make sense to compute it in C.
What do you get if you ask for one colour (the most common case?)? A one-element list seems silly. Brian
Brian D. Ripley, ripley@stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272860 (secr) Oxford OX1 3TG, UK Fax: +44 1865 272595 -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._