如何在R的Pheatmap中插入多条垂直和水平线?

时间:2019-07-05 21:18:40

标签: r plot pheatmap

我正在尝试在pheatmap中的R产生的热图内的所需坐标处插入垂直和水平线。

mat <- matrix(rnorm(200*200),200,200)
pheatmap(mat,treeheight_row = 0, treeheight_col = 0,
         col= colorRampPalette(c("gray", "white", "lightcoral"))((50)))
grid.lines(x=c(50,100,150),y=c(50,100,150)) 

我想在y = c(50,100,150)插入3条水平线,在x = c(50,100,150)插入3条垂直线。以这种方式使用“ grid.lines”(?)没有帮助。

1 个答案:

答案 0 :(得分:0)

这是一个基于怪胎的解决方案。

library(grid)
nr <- nrow(mat)
nc <- ncol(mat)
grds <- c(50, 100, 150)
downViewport("matrix.4-3-4-3")
for (k in grds) {
  grid.lines(x=c(0,1), y=k/nc, gp=gpar(col="black", lwd=2))
  grid.lines(x=k/nr, y=c(0,1), gp=gpar(col="black", lwd=2))
}
popViewport()

enter image description here