Re: [R] How to plot curves with more than 8 colors

From: Don MacQueen <macq_at_llnl.gov>
Date: Fri 30 Dec 2005 - 04:05:10 EST

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@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@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@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@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

______________________________________________
R-help@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
Received on Fri Dec 30 04:14:46 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:41:44 EST