On 10/10/2009 11:10 AM, Jonathan Bleyhl wrote:
On a similar note, I'm trying to plot continuous values on the y vs.
categorical (dates) on the x and I want to color by date, but I want the
colors to be random so points close to each other are easily
distinguishable. Any thoughts?
Thanks,
Jon
per freem-2 wrote:
hi all,
suppose I have a file with several columns, and I want to plot all points
that meet a certain condition (i.e. all points in columns A and B that
have
a value greater than such and such in column C of the data) in a new but
random color. That is, I want all these points to be colored differently
but I dont care what color. The only concern is that the points will be
colored as differently from each other as possible.
The specific example I have is a file with three columns, X, Y and ID. I
want to plot all rows from X, Y (i.e. all points) that have the same value
(say 1) in their ID column as one color, all points from X, Y that have
the
same ID column value (say 2) as a different color, etc. I dont know ahead
of time how many values the ID column will have so I can't write a
separate
plot statement for each of these sets of X, Y rows that have the same ID
value.
Is there a way to express this in R?
Hi per freem and Jonathan,
Random colors may not do what you want simply because they're random.
That is, you can get two adjacent colors that are very similar unless
you constrain the choice of colors. One way to do this is to bias the
choice of color constituents "away" from the previous color.
gimmeDiffCol<-function(oldcol) {
rgbcomp<-col2rgb(oldcol)
if(rgbcomp[1,1]>127) newred<-sample(rgbcomp[1,1]:255,1)/255
else newred<-sample(0:rgbcomp[1,1],1)/255
if(rgbcomp[2,1]>127) newgreen<-sample(rgbcomp[2,1]:255,1)/255
else newgreen<-sample(0:rgbcomp[2,1],1)/255
if(rgbcomp[3,1]>127) newblue<-sample(rgbcomp[3,1]:255,1)/255
else newblue<-sample(0:rgbcomp[3,1],1)/255
return(rgb(newred,newgreen,newblue))
}
This is only one way to do this, but it might get you out of trouble.
Jim
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.