R - 如何在pheatmap中添加行和文本?

时间:2014-08-11 10:41:08

标签: r

我正在使用pheatmap()函数创建热图,使用以下代码:

library(pheatmap)
pheatmap((data_matrix[,1:11]), cluster_rows = F, cluster_cols = F, scale="none",
     show_rownames=F, treeheight_row = F, 
     color=colorRampPalette(rev(c("red","white")))(50),
     main="values", cex.main=1.2)

我想在某些位置添加文字和行来表示组和百分比。

abline()text()没有工作和过度绘图我到目前为止还没有成功。

最好的方法是什么?

谢谢, 菲利普

2 个答案:

答案 0 :(得分:4)

如果您查看pheatmap函数的源代码,您会看到,在调整数据之后,它会调用heatmap_motor函数。

查看此函数(它未导出,因此您必须键入pheatmap:::heatmap_motor才能查看其源代码),您将看到它使用grid包中的函数绘制热图,因此使用ablinetext无法工作,但grid.ablinegrid.text将会使用!

例如(请注意,坐标是通过反复试验过程找到的):

library(pheatmap)
library(grid)

a <- matrix(rnorm(100), 10, 10)
pheatmap(a, cluster_rows = F, cluster_cols = F)

grid.text(1:100, x=rep(seq(0.05, 0.91, length.out=10), 10), 
          y=rep(seq(0, 1, 0.1)+0.05, each=10))

答案 1 :(得分:2)

您可以在display_numbers中使用pheatmap选项。例如,

library(pheatmap)

a <- matrix(rnorm(90), 9, 10)
txt <- matrix(sample(letters, replace = TRUE, 90), 9, 10)
pheatmap(a, cluster_rows = F, cluster_cols = F, display_numbers = txt)

结果数字:pheatmap with texts