在arrangeGrob中使用pheatmap

时间:2016-09-20 09:46:49

标签: r grob pheatmap

我正在尝试使用arrangeGrob()在同一个.jpg中填充两个图。 我刚刚开始学习网格和凹凸,我想我知道问题是什么:pheatmap是一个网格对象,包含grob对象,不允许我把它放在arrangeGrob中。这是真的吗?

我是否需要将qplot放在网格和网格中的pheatmap中,然后将这些网格放在新网格中?

library(grid)
library(gridExtra)
library(pheatmap)
library(ggplot2)
hmdat=rbind(c(1,2,3),
            c(3,4,5),
            c(5,6,7))
hm=pheatmap(hmdat)
qp=qplot(1,1)
lm=rbind(c(1,2,2),
         c(1,2,2))
jpeg("plots.jpg")
arrangeGrob(qp,hm, layout_matrix=lm)
dev.off()

使用

时,上面的代码段运行正常
arrangeGrob(qp,qp, layout_matrix=lm)

1 个答案:

答案 0 :(得分:2)

我不确定你是否想要有6个数字,或者你想要有两个数字,一个宽度是另一个数字的两倍(我试图做最小代码更改):

library(grid)
library(gridExtra)
library(pheatmap)
library(ggplot2)
hmdat=rbind(c(1,2,3),
            c(3,4,5),
            c(5,6,7))
hm=pheatmap(hmdat)
qp=qplot(1,1)
lm=rbind(c(1,2,2),
         c(1,2,2))
grid.arrange(grobs = list(qp,hm[[4]]), layout_matrix = lm)

会给你: enter image description here

正如注释中提到的@hrbrmstr,您应该使用pheatmap对象中的第4项。另请记得将grobs作为列表提供给grid.arrange