I am creating a levelplot figure with the following code. This should be repeatable code, which includes a link to the data I am working with.
--------------------------- pdfFn <- "foo.pdf" df <- read.table("http://dl.dropbox.com/u/31495717/stackoverflow.overlaps.list.txt", sep="\t", header=FALSE) names(df) <- c("x", "y", "level") df$level <- round(df$level*100, 0) # reorder cell type row-factors (in reverse of given order) df$y <- factor(df$y, levels=unique(df$y[length(df$y):1])) lowestValue <- min(df$level) secondHighestValue <- unique(sort(df$level, decreasing=TRUE))[2] numberOfColorBins <- 10 col.seq <- seq(lowestValue, secondHighestValue, length.out=numberOfColorBins) brks <- c(0, col.seq, Inf) cuts <- cut(df$level, breaks=brks) colors <- colorRampPalette(c("white", "red"))(length(levels(cuts))-1) colors <- c(colors, "black") cls <- rep(colors, times=table(cuts)) library(lattice) trellis.device(dev=pdf, file=pdfFn) fig <- levelplot(cuts~x*y, data=df, cuts=numberOfColorBins, col.regions=cls, xlab="", ylab="", aspect="iso", scales=list( x=list(rot=90) ), panel=function(...) { arg <- list(...) panel.levelplot(...) panel.text(df$x, df$y, df$level, cex=0.5) }, colorkey=list(col=colorRampPalette(c("white", "red"))(length(col.seq)), at=col.seq) ) print(fig) graphics.off() --------------------------- For reference, here is what the graph ("foo.pdf") looks like: * http://twitpic.com/7z9u2c Please note, in this example, the diagonal of black cells (representing cells with a level of "100"). The variable 'numberOfColorBins' defines the number of gradients between white and red, for values between the minimum level, and the second-highest level. If I adjust the variable 'numberOfColorBins' from the current 10 to some value 16 or greater, then the diagonal of black cells (values of "100") turns into a diagonal of red cells. Because I define red cells as between (in this example) the minimum of "14" and the second-highest maximum "79", values of "100" should always be black. My question is: If I have 16 or more color bins between white and red, inclusive, then cells that were colored black are now colored red, which is incorrect. How can I increase the number of color bins between white and red, while keeping black cells black? Thanks for any advice. Regards, Alex ______________________________________________ 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.