アメリエフの技術ブログ

Amelieff Staff Blog

heatmap.2のlmatオプション

Rにはデフォルトでもヒートマップを作成するheatmap関数がありますが、私はheatmap関数より多機能なgplotsパッケージのheatmap.2関数をよく使います。

基本的な使い方はheatmap関数と同じです。
gplotsパッケージをインストールしていない場合はインストールから始めます。

install.packages("gplots")
library(gplots)

引数はnumericのmatrixです。
ここではRに組み込まれているデータセットmtcarsをmatrixに変換して使います。

input<-as.matrix(mtcars)

f:id:kubo-m:20190723200316p:plain

heatmap.2(input)

heatmap.2で作図すると、デフォルトでは左上にカラーキー、右上にinputのcolをクラスタリングしたデンドログラム、左(左下)にinputのrowのデンドログラム、右(右下)にヒートマップが描画されます。この配置はheatmap.2のlmatオプションで変えることができます。
lmatオプションの使い方はlayout関数と同じで、作図の順番を指定するためのmatrixを指定して使います(heatmap.2内部でlayout関数を使っています)。作図される順は下図の通りです。
heatmap2(default)lmatを変更すると、layout関数のheights、widthsオプションに相当するlheiオプションとlwidオプションが要求されるので、適当な数字を指定する必要があります。

カラーキーを右上に移動してみます。

lm<-matrix(c(0,2,3,1,4,0),ncol=3)
heatmap.2(input,lmat=lm,lwid=c(1,5,2),lhei=c(1,4))

f:id:kubo-m:20190723200332p:plain


ただし、 ColSideColors/RowSideColorsオプションを使うと、これらの作図順が①番になり、以降のの順番がずれます。

heatmap.2(input,ColSideColors=col)
# colで任意の色を指定します

f:id:kubo-m:20190723200339p:plain


両方使用した場合、①RowSideColors ②ColSideColorsの順になります。
私はここにひっかかって苦労したので、紹介してみました。