我正在使用以下代码使用 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() 不起作用,到目前为止我没有成功。

最好的方法是什么?

谢谢,
菲利普

最佳答案

如果您查看 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))

关于R - 如何向 pheatmap 添加行和文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25241333/

10-12 19:50