2013-07-09 56 views
5

pheatmapパッケージがRで非常に見栄えのよいヒートマップを作成する方法が本当に好きです。しかし、x軸とy軸のラベルを出力に追加しようとしています()、xlab = 'stuff')を使用します。簡単な例は次のとおりです。私は私の人生のために、このプロットに「xlab」または「ylab」を追加する方法を見つけ出すことはできませんx軸とy軸のラベルがpheatmapにある場合

Example of the above

require(pheatmap) 

## Generate some data 
d <- matrix(rnorm(25), 5, 5) 
colnames(d) = paste("bip", 1:5, sep = "") 
rownames(d) = paste("blob", 1:5, sep = "") 

## Create the heatmap: 
pheatmap(d) 

上記は、次のヒートマップを生成します。思考?

+0

奇妙な、私は何の解決策を参照してくださいません。私もmultipanelプロットを作成しようとしました...また、グラフにテキストを追加することは不可能です。 私が知る限り、メインオプションを "偽のxlab"として使うことができます。 – FraNut

答えて

4

ここでの主な問題は、gridパッケージを使用するpheatmapが呼び出されるたびに新しいグリッドページを作成することです。私が見つけた解決策は次のとおりです。

library(pheatmap) 
library(grid) 

## Generate some data 
d <- matrix(rnorm(25), 5, 5) 
colnames(d) = paste("bip", 1:5, sep = "") 
rownames(d) = paste("blob", 1:5, sep = "") 

## Create the heatmap: 
setHook("grid.newpage", function() pushViewport(viewport(x=1,y=1,width=0.9, height=0.9, name="vp", just=c("right","top"))), action="prepend") 
pheatmap(d) 
setHook("grid.newpage", NULL, "replace") 
grid.text("xlabel example", y=-0.07, gp=gpar(fontsize=16)) 
grid.text("ylabel example", x=-0.07, rot=90, gp=gpar(fontsize=16)) 

enter image description here

+1

プロットの右側にyラベルを取得する方法はありますか? –

+0

'grid.text(" ylabel example "、x = -0.07、rot = 90、gp = gpar(fontsize = 16))のxの値を変更する' – DonJ