I have a question about assigning color based on the value of a matrix
The following is my matrix.
d
lateRT earlyRT NAD ciLAD
lateRT 1.000000000 0.0000000000 0.006224017 0.001260241
earlyRT 0.000000000 1.0000000000 0.001425649 0.007418436
NAD 0.006224017 0.0014256488 1.000000000 0.064653780
ciLAD 0.001260241 0.0074184361 0.064653780 1.000000000
LAD 0.006969928 0.0007096344 0.393556636 0.002483941
LAD
lateRT 0.0069699285
earlyRT 0.0007096344
NAD 0.3935566356
ciLAD 0.0024839407
LAD 1.0000000000
I want to use the following function to get heatmap and dendrogram
> heatmap.2(d,trace="none",margin=c(8, 10))
but it is hard to use color to make 0.001260241 and 0.0074184361 to be
visualized differently.
Does anyone know how to adjust color based on these values in this matrix?
Thank you,
Aimin
[[alternative HTML version deleted]]
The attached is the heatmap. Thank you, Aimin On Wed, Feb 27, 2019 at 10:51 PM Aimin Yan <aimin.at.work at gmail.com> wrote:> I have a question about assigning color based on the value of a matrix > > The following is my matrix. > > d > lateRT earlyRT NAD ciLAD > lateRT 1.000000000 0.0000000000 0.006224017 0.001260241 > earlyRT 0.000000000 1.0000000000 0.001425649 0.007418436 > NAD 0.006224017 0.0014256488 1.000000000 0.064653780 > ciLAD 0.001260241 0.0074184361 0.064653780 1.000000000 > LAD 0.006969928 0.0007096344 0.393556636 0.002483941 > LAD > lateRT 0.0069699285 > earlyRT 0.0007096344 > NAD 0.3935566356 > ciLAD 0.0024839407 > LAD 1.0000000000 > > I want to use the following function to get heatmap and dendrogram > > > heatmap.2(d,trace="none",margin=c(8, 10)) > > but it is hard to use color to make 0.001260241 and 0.0074184361 to be > visualized differently. > > Does anyone know how to adjust color based on these values in this matrix? > > Thank you, > > Aimin > > >
Hi! 2019-02-27 22:51 -0500, Aimin Yan wrote:> I have a question about assigning color based on the value of a > matrix > > The following is my matrix. > > d > lateRT earlyRT NAD ciLAD > lateRT 1.000000000 0.0000000000 0.006224017 0.001260241 > earlyRT 0.000000000 1.0000000000 0.001425649 0.007418436 > NAD 0.006224017 0.0014256488 1.000000000 0.064653780 > ciLAD 0.001260241 0.0074184361 0.064653780 1.000000000 > LAD 0.006969928 0.0007096344 0.393556636 0.002483941 > LAD > lateRT 0.0069699285 > earlyRT 0.0007096344 > NAD 0.3935566356 > ciLAD 0.0024839407 > LAD 1.0000000000 > > I want to use the following function to get heatmap and dendrogram > > > heatmap.2(d,trace="none",margin=c(8, 10)) > > but it is hard to use color to make 0.001260241 and 0.0074184361 to > be > visualized differently. > > Does anyone know how to adjust color based on these values in this > matrix?Have you tried to adapt the attribute "colorTable"? You have to store the heatmap in an object (say "hm") and the use "hm$colorTable". See the examples here: https://www.rdocumentation.org/packages/gplots/versions/3.0.1.1/topics/heatmap.2 Also take a look on the documentation. HTH, Kimmo
Hi Aimin,
This example uses a log transformation to spread the colors out:
d<-read.table(text=" lateRT earlyRT NAD
ciLAD LAD
1.000000000 0.0000000000 0.006224017 0.001260241 0.0069699285
0.000000000 1.0000000000 0.001425649 0.007418436 0.0007096344
0.006224017 0.0014256488 1.000000000 0.064653780 0.3935566356
0.001260241 0.0074184361 0.064653780 1.000000000 0.0024839407
0.006969928 0.0007096344 0.393556636 0.002483941 1.0000000000",
header=TRUE)
rownames(d)<-colnames(d)
d<-as.matrix(d)
diag(d)<-NA
library(plotrix)
color2D.matplot(-log(d+0.0001),extremes=c("red","blue"),
main="Correlation matrix of d",axes=FALSE)
axis(1,at=seq(0.5,4.5),labels=colnames(d))
axis(2,at=seq(0.5,4.5),labels=rownames(d))
color.legend(0,-0.7,2,-0.5,legend=c(0,0.001,0.007,0.07,0.4),
rect.col=color.scale(log(c(0.00001,0.001,0.005,0.07,0.4)),
extremes=c("blue","red")),align="rb")
Jim
On Thu, Feb 28, 2019 at 2:52 PM Aimin Yan <aimin.at.work at gmail.com>
wrote:>
> I have a question about assigning color based on the value of a matrix
>
> The following is my matrix.
>
> d
> lateRT earlyRT NAD ciLAD
> lateRT 1.000000000 0.0000000000 0.006224017 0.001260241
> earlyRT 0.000000000 1.0000000000 0.001425649 0.007418436
> NAD 0.006224017 0.0014256488 1.000000000 0.064653780
> ciLAD 0.001260241 0.0074184361 0.064653780 1.000000000
> LAD 0.006969928 0.0007096344 0.393556636 0.002483941
> LAD
> lateRT 0.0069699285
> earlyRT 0.0007096344
> NAD 0.3935566356
> ciLAD 0.0024839407
> LAD 1.0000000000
>
> I want to use the following function to get heatmap and dendrogram
>
> > heatmap.2(d,trace="none",margin=c(8, 10))
>
> but it is hard to use color to make 0.001260241 and 0.0074184361 to be
> visualized differently.
>
> Does anyone know how to adjust color based on these values in this matrix?
>
> Thank you,
>
> Aimin
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.