我尝试使用arrangeGrob()将两个图表放在同一个.jpg文件中。我刚开始学习网格和grobs,我认为我知道问题所在: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)
arrangeGrob(qp, hm[[4]], layout_matrix=lm)
。pheatmap()
的手册页面在“Values”部分明确说明它返回一个组件的list
,但未提及第四个组件,即图表的gtable
。您必须具体索引它,因为它不会触发函数调用内对象的Rprint
方法查找/执行。 - hrbrmstr