[R] How to plot curves with more than 8 colors
Don MacQueen
macq at llnl.gov
Thu Dec 29 18:05:10 CET 2005
I have found this little function useful when trying to choose colors:
showcols <- function (indx = 0:6)
{
for (ii in unique(indx)) {
is <- 100 * ii + 1:100
if (min(is) > length(colors())) {
cat("Maximum value of arg is", floor(length(colors())/100),
"\n")
return(NULL)
}
foo <- matrix(colors()[is], nrow = 10)
par(mar = c(3, 3, 0.25, 0.25))
plot(1:10, 1:10, type = "n", yaxt = "n", xlab = "", ylab = "")
axis(2, at = 1:10, lab = 10:1)
for (j in 1:10) {
for (i in 1:10) {
points(j, 11 - i, col = foo[i, j], pch = 16,
cex = 4)
text(j, 11 - i - 0.3, foo[i, j], cex = 0.8)
}
}
if (length(indx) > 1 & ii < max(indx))
readline(paste("Currently showing group", ii, " CR to continue "))
}
invisible(foo)
}
Just type
showcols()
at the R prompt. Then pick any 20 you happen to think are distinguishable.
Based on my own experience, I would doubt that it is possible to find
20 easily distinguishable colors.
But perhaps if you use both solid and dotted lines you can get 20
distinguishable lines.
-Don
At 10:48 AM +0800 12/28/05, Vincent Deng wrote:
>Hi,
>
>Thanks for your kindly reply.
>I think maybe I didn't specify color codes properly. That is,the
>difference between each color is not sharp enough for me to identify
>them as different colors.
>
>So can you tell me about how to specify the color properly so that the
>difference among each color can be identified clearly?
>
>Thanks again and again ...
>
>On 12/27/05, Uwe Ligges <ligges at statistik.uni-dortmund.de> wrote:
>> Vincent Deng wrote:
>>
>> > Dear Uwe,
>> >
>> > Sorry, I did not describe my question clearly. I created a matrix to
>> > store color code using rgb function.
>> >
>> > abc = rgb(6:36,0,0,maxColorValue = 255)
>> >
>> > And after running codes like this
>> >
>> > for (i in c(1:20))
>> > {
>> > points(...,...,col=abc[i])
>> > lines(...,col=abc[i])
>> > }
>> >
>> > R still used 8 colors of abc color codes repeatedly to draw the diagram
>> >
>> > Any helps?
>>
>>
>> No, it does not (in fact, all appears to be more or less black on my
>> screen ;-)). Another example:
>>
>> plot(1:255, col=rgb(1:255,0,0,maxColorValue = 255))
>>
>> Uwe Ligges
>>
>>
>>
>> > Best Regards...
>> >
>> > On 12/27/05, Uwe Ligges <ligges at statistik.uni-dortmund.de> wrote:
>> >
>> >>Vincent Deng wrote:
>> >>
>> >>>Hi,
>> >>>
>> >>>I'm a new hand in R language. I have about 20 groups of data[x,y] and
>> >>>want to plot them on a graph. To do this, I write a for-loop as
>> >>>following: (some codes are omitted for simplicity)
>> >>>
>> >>>for (i in c(1:20))
>> >>>{
>> >>> points(...,...,col=i)
>> >>> lines(...,col=i)
>> >>>}
>> >>>
>> >>>The problem is "R only plot them with 8 colors repeatly". Could anyone
>> >>>help me solve this problem? Or is there any package providing plot
>> >>>function without color limit?
>> >>
>> >>
>> >>After typing
>> >>
>> >> ?colors
>> >>
>> >>I get a nice help page that points me to a lot of other functions that
>> >>generate more than 8 colors. Maybe your installation of R is broken and
>> >>you cannot see this help page? You certainly tried to get help on colors
>> >>as well.
>> >>
>> >>There is no limit of the color number in the functions above, simply
>> >>specify the color you want to get. The only color limit applies for the
>> >>device and for most devices and rgb colors this is 256^3.
> > >>
> > >>Uwe Ligges
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>>Best Regards...
> > >>>
> > >>>______________________________________________
> > >>>R-help at stat.math.ethz.ch mailing list
> > >>>https://stat.ethz.ch/mailman/listinfo/r-help
>> >>>PLEASE do read the posting guide!
>>http://www.R-project.org/posting-guide.html
>> >>
>> >>
>>
>>
>
>______________________________________________
>R-help at stat.math.ethz.ch mailing list
>https://stat.ethz.ch/mailman/listinfo/r-help
>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
--
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
More information about the R-help
mailing list