[R] color2D.matplot not giving colors
Jim Lemon
jim at bitwrit.com.au
Sun Mar 7 09:18:17 CET 2010
On 03/07/2010 05:23 AM, david hilton shanabrook wrote:
> I am using color2D.matplot to plot a matrix about 400 by 200.
>
> The values in the matrix are 0:5 and NA. The resulting plot is not color, but shaded b/w. I tried to figure out how to add colors, I would like something like c(blue, green, red, cyan, green)
>
> #example
> motifx<- matrix(NA, nrow=100,ncol=20)
> motifx[,1:5]<- 1
> motifx[,6:10]<- 2
> motifx[,11:15]<- 3
> motifx[,15:19]<- 4
> motifx
> color2D.matplot(motifx, na.color="white",show.legend=TRUE)
>
> or is there a better function to use than color2D.matplot?
Hi David,
The reason you are not getting colors is because you are not asking for
them. The default behavior is to translate the numbers in "motifx" into
grayscale in which black and white are equivalent to min(motifx) and
max(motifx) respectively. What you may want is this:
color2D.matplot(motifx, na.color="white",show.legend=TRUE,
cellcolors=motifx)
but your legend will be incorrect, as the automatic legend function
tries to scale the colors into range(motifx). If you are going to supply
the cellcolors, it is best to use color.legend to display the legend, as
you know that the number of unique colors is small, e.g.
color2D.matplot(motifx,na.color="white",cellcolors=motifx+2)
color.legend(0,-15,4,-10,legend=paste(unique(as.vector(motifx)),""),
rect.col=unique(as.vector(motifx)+2))
Jim
More information about the R-help
mailing list