首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在arrangeGrob中使用pheatmap

在arrangeGrob中使用pheatmap
EN

Stack Overflow用户
提问于 2016-09-20 17:46:49
回答 1查看 3K关注 0票数 10

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

我是否需要以某种方式将qplot放在一个网格中,将pheatmap放在一个网格中,然后将这些网格放入一个新的网格?

代码语言:javascript
复制
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()

上面的代码片段在使用

代码语言:javascript
复制
arrangeGrob(qp,qp, layout_matrix=lm)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-08 21:33:27

我不确定您是想要6位数,还是想要两位数,其中一个的宽度是另一个的两倍(我试着做最少的代码更改):

代码语言:javascript
复制
library("grid")
library("gridExtra")
library("pheatmap")
library("ggplot2")

hmdat=rbind(c(1,2,3),
            c(3,4,5),
            c(5,6,7))

hm <- pheatmap::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)

这将为您提供:

同样,您可以并排使用多个pheatmap:

代码语言:javascript
复制
library("grid")
library("gridExtra")
library("pheatmap")

hmdat <- rbind(c(1,2,3),
            c(3,4,5),
            c(5,6,7))

hm <- pheatmap::pheatmap(hmdat)

lm <- rbind(c(1,2),
         c(3,3))
grid.arrange(grobs = list(hm[[4]],
                          hm[[4]],
                          hm[[4]]),
             layout_matrix = lm)

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39590849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档