An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130610/383c2cd4/attachment.pl>
Selecting divergent colors
3 messages · Brian Smith, Adams, Jean, Ben Tupper
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130610/6bbeceed/attachment.pl>
Hi,
On Jun 10, 2013, at 3:46 PM, Adams, Jean wrote:
It will be hard to come up with 20 clearly distinguishable colors. Check out the website http://colorbrewer2.org/ and the R package RColorBrewer. It does not have a 20-color palette, but it does have some 8- to 12-color palettes that are very nice. library(RColorBrewer) display.brewer.all(n=NULL, type="all", select=NULL, exact.n=TRUE)
It sounds like Brian is looking for categorical coloring rather than divergent coloring. The Glasbey LUT works really well in image processing for just such purposes. It would be easy to use that within R for your lines. http://www.bioss.ac.uk/people/chris/colorpaper.pdf You might be able to snag the color table out of this collection of Java plugins for ImageJ software. http://www.dentistry.bham.ac.uk/landinig/software/morphology.zip Within that archive is a text file called glasbey.lut which is a simple text file of RGB color values. Cheers, Ben
You could use these colors in combination with line type to build up to 72
unique combinations. For example ...
nuniq <- ncol(mat)
mycols <- rep(brewer.pal(12, "Set3"), length=nuniq)
myltys <- rep(1:6, rep(12, 6))[1:nuniq]
for(k in 1:nuniq){
plot(density(mat[,k]), col=mycols[k], xlab='', ylab='', axes=F, main=F,
lwd=3, lty=myltys[k])
par(new=TRUE)
}
legend('topright', legend=snames, col=mycols, lty=myltys, lwd=3)
Jean
On Mon, Jun 10, 2013 at 12:33 PM, Brian Smith <bsmith030465 at gmail.com>wrote:
Hi,
I was trying to make a density plot with 13 samples. To distinguish each
sample, it would be good if each color is as different as possible from the
other colors. I could use the built in function, but that does not do more
than 8 colors and then goes back to recycling the cols. If I use a palette,
then it is really difficult to distinguish between the colors.
So, is there a way that I can select a large number of colors (i.e. perhaps
20) that are as different from each other as possible?
Here is my example code using the palette:
**********************
mat <- matrix(sample(1:1000,1000,replace=T),nrow=20,ncol=20)
snames <- paste('Sample_',1:ncol(mat),sep='')
colnames(mat) <- snames
mycols <- palette(rainbow(ncol(mat)))
for(k in 1:ncol(mat)){
plot(density(mat[,k]),col=mycols[k],xlab='',ylab='',axes=F,main=F)
par(new=T)
}
legend(x='topright',legend=snames,fill=mycols)
****************************
thanks!
[[alternative HTML version deleted]]
______________________________________________ R-help at 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.
[[alternative HTML version deleted]]
______________________________________________ R-help at 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.
Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org