Dear All, I am using the plotrix library to plot some matrices. I have a problem: some of my data are outliers, hence using a linear color scale does not work very well (you would see too many cells having a similar, indistinguishable color). See the code snipped at the end of the email. Plotting the logarithm of the data gets the job done, but my problem is that I would like to write in every cell the value of the corresponding entry of the original matrix, not is logarithm. Does anyone know how to get this done? Or the other way around: leave the data as is, but use a color log scale. Many thanks
Lorenzo library(plotrix) set.seed(1234) myseq <- abs(rnorm(25)) myseq[20] <- 100 #introduce outlier! A <- matrix(myseq, ncol=5,nrow=5) #nasty looking figure pdf("test_color_scale.pdf") oldpar<-par( mar = c(4.5,5, 2, 1) + 0.1, cex.axis=1.4,cex.lab=1.6,cex.main=1.6) color2D.matplot(A,main="Title",c(0.2,1),c(0.2,0.5),c(0,0), xlab = "", ylab="", show.legend=TRUE, show.values=1,vcol="black",vcex=1, axes=FALSE) ## axis(1,at=c(0.5,1.5,2.5,3.5,4.5),labels=prefix_vec_short) ## axis(2,at=rev(c(0.5,1.5,2.5,3.5,4.5)),labels=prefix_vec_short) box() par(oldpar) dev.off() #this looks better, but in each cell I would like to see the same #numbers as before. pdf("test_color_scale_log.pdf") oldpar<-par( mar = c(4.5,5, 2, 1) + 0.1, cex.axis=1.4,cex.lab=1.6,cex.main=1.6) color2D.matplot(log(A),main="Title",c(0.2,1),c(0.2,0.5),c(0,0), xlab = "", ylab="", show.legend=TRUE, show.values=1,vcol="black",vcex=1, axes=FALSE) ## axis(1,at=c(0.5,1.5,2.5,3.5,4.5),labels=prefix_vec_short) ## axis(2,at=rev(c(0.5,1.5,2.5,3.5,4.5)),labels=prefix_vec_short) box() par(oldpar) dev.off() ______________________________________________ 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.