[R] color code from csv

Ivar Herfindal ivar.herfindal at bio.ntnu.no
Mon Oct 6 14:00:50 CEST 2008



Paul Hiemstra skrev:
> kerfuffle 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!   
> Could you provide a small code sample that reproduces your problem 
> (like stated in the posting guide)? And also include the info from 
> sessionInfo().
>
> cheers,
> Paul
>
Hi

In addition to Paul's advice, you could try to convert the color column 
to character in the plot-call. The column is most likely stored as 
factor after the import of the csv-file. So maybe something like this 
would work:
with(data, plot(X ~ Y, col=as.character(color)))

If not, see Paul's advice.

Ivar



More information about the R-help mailing list