在 arrangeGrob 中使用 pheatmap
Using a pheatmap in arrangeGrob
我正在尝试使用 arrangeGrob() 在同一个 .jpg 中绘制两个图。
我才刚刚开始学习网格和 grob,我想我知道问题是什么: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)
我不确定你是想要 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::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)
这会给你:
与您可以并排放置多个作弊图的方式相同:
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
我正在尝试使用 arrangeGrob() 在同一个 .jpg 中绘制两个图。 我才刚刚开始学习网格和 grob,我想我知道问题是什么: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)
我不确定你是想要 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::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)
这会给你:
与您可以并排放置多个作弊图的方式相同:
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