我正在使用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()
没有工作和过度绘图我到目前为止还没有成功。
最好的方法是什么?
谢谢, 菲利普
答案 0 :(得分:4)
如果您查看pheatmap
函数的源代码,您会看到,在调整数据之后,它会调用heatmap_motor
函数。
查看此函数(它未导出,因此您必须键入pheatmap:::heatmap_motor
才能查看其源代码),您将看到它使用grid
包中的函数绘制热图,因此使用abline
或text
无法工作,但grid.abline
或grid.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