10

我真的很喜欢这个pheatmap包如何在 R 中创建非常漂亮的热图。但是,我正在尝试将 x 和 y 轴标签添加到输出中(如果只是在 plot() 中,可以使用:xlab = 'stuff')。一个简单的例子如下。

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)

以上产生以下热图:

上述示例

我一生都无法弄清楚如何在这个情节中添加“xlab”或“ylab”。想法?

4

1 回答 1

12

这里的主要问题是pheatmap,它使用grid包,每次调用时都会创建一个新的网格页面。我找到的解决方案是:

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))

在此处输入图像描述

于 2014-02-10T17:34:23.240 回答