October 6, 2020

R:ヒートマップのレイアウト変更

 gplotsでヒートマップを描くとき、layout関数で幅などを変えることができる。

irisのデータを用いて書いてみる。ヒートマップの要素は以下の通りに分割されて、それぞれ番号がついている。



以下のように実行すると、lmat=matrix(c(4,2,3,1), ncol=2)は上記と同じ並びになるため、上図と同じ図を得ることができる。

1
2
3
4
5
6
7
8
9
library(datasets)
iris <- iris

library(gplots)
heatmap.2(as.matrix(iris[,-5]), col=bluered(50), scale="none",
          key=TRUE, symkey=FALSE, density.info="none", trace="none", 
          cexRow=0.3, cexCol = 0.5,
          lmat=matrix(c(4,2,3,1), ncol=2))
dev.off()

もしlmat=matrix(c(4,3,2,1), ncol=2)と入力すると、以下のような図になる。



ヒートマップの幅は、lwidやlhei関数で相対幅を指定することで変更できる。

heatmap.2(as.matrix(iris[,-5]), col=bluered(50), scale="none",
          key=TRUE, symkey=FALSE, density.info="none", trace="none", 
          cexRow=0.3, cexCol = 0.5,
          lmat=matrix(c(4,2,3,1), ncol=2), lwid=c(1,5),lhei=c(1,5))
dev.off()



また、左上のカラーキーは keysize関数で変更できる。また、フォントサイズはkey.par = list(cex=###))で指定できる。以下ではkeysize=0.01とするとともに、lhei=c(1,10)として、ヒートマップの相対高さを増やしている。

heatmap.2(as.matrix(iris[,-5]), col=bluered(50), scale="none",
          key=TRUE, symkey=FALSE, density.info="none", trace="none", 
          cexRow=0.3, cexCol = 0.5,
          lmat=matrix(c(4,2,3,1), ncol=2), lwid=c(1,5),lhei=c(1,10),
          keysize=0.01, key.par = list(cex=0.4))



No comments:

Post a Comment