[R] color code from csv

Sarah Goslee sarah.goslee at gmail.com
Sat Oct 4 00:07:56 CEST 2008


I don't know how to get R to use the hex codes, but as an alternative
strategy you can use colors() to get a (much longer than 8) list of
all the colors that R "knows", and use that with your index:

plot(x, y, col=colors()[datacolor])

It takes a bit of fiddling to get distinguishable colors that you like,
but not too hard. Conveniently, there's a color chart here:

You can also try rainbow() and it's relatives (describe in ?rainbow).


On Fri, Oct 3, 2008 at 3:10 PM, kerfuffle <pswi at ceh.ac.uk> wrote:
> hi folks,
> this is driving me up the wall.  Apologies for posting twice in the same
> week, I'm writing up a thesis.  I wish to color-code some dots in an xy
> plot.  I've got a csv file with various elements, one of which is the
> color-key (with the header 'color').  If the color-key is decimal (eg.
> 1,2,3) then I can use
> plot (X ~ Y, col=data$color)
> The problem, however, is that using decimal numbers I can only produce 8
> colors.  It starts to recyle them after that (so, if possible values of my
> color column are 1,2,3,4,5,6,7,8,9,10,11, the values 1 and 9 both produce
> red, 2 and 10 produce black).  However, I knew I could get more colors by
> using hexadecimal (tested with the legend)  So, I carefully produced a csv
> file with hexadecimal values instead of decimal ones (eg. elements in the
> column are #ffffff, #ff0000) but if I use col=data$color it doesn't work,
> the entire plot is white.  If I use these set of hexadecimal values in the
> legend, it works fine and I get lovely colors.
> I could use pch, but I'm already using symbols for another key.
> Grrr.  What am I missing?
> Thanks!
Sarah Goslee

More information about the R-help mailing list