[Rd] Wishlist: user-specified color names for palette() (PR#4836)

Gabor Grothendieck ggrothendieck at myway.com
Wed Oct 29 14:48:52 MET 2003

Provided you are willing to only use colors in the vector returned
by colors() then this function would do it for you:

colors.names <- function( x ) { 
   color.name <- function( x ) 
      ifelse(substr(x,1,1) == "#", colors()[ match( x, colors.hex() ) ], x )
   z <- sapply( x, color.name ) 
   ifelse(is.na(z), x, z)

where colors.hex is defined here:



colors.names( c("red", "#FF00FF", "blue") )


To: <r-devel at stat.math.ethz.ch> 
Cc: <R-bugs at biostat.ku.dk> 
Subject: [Rd] Wishlist: user-specified color names for palette() (PR#4836) 

Full_Name: Hsiu-Khuern Tang
Version: 1.8.0
OS: GNU/Linux (Debian unstable)
Submission from: (NULL) (


I use palette(rgb(red=..., green=..., blue=..., names=mycolors)) to define my
own color palette. After doing this, the names `mycolors' are not stored in
palette() anymore, so that palette() returns a mix of built-in color names and
RGB values.

> palette()
[1] "black" "#EAA200" "#FF6633" "gray60"

I wish that palette() would return a _named vector_ like this:

> palette()
black orange tomato gray 
"#000000" "#EAA200" "#FF6633" "#999999" 

One application:

I want to specify colors by name, where the names returned by palette() are
searched first. If there is a match, the corresponding RGB value is used;
otherwise the built-in R color is used.

Hsiu-Khuern Tang.




No banners. No pop-ups. No kidding.
Introducing My Way - http://www.myway.com

More information about the R-devel mailing list