如何指定行数和列数以使用 gridExtra 每页打印多个图?
How do I specify the number of rows and columns to print multiple plots per page with gridExtra?
我已经使用 ggplot
通过 for 循环创建了许多图,并将每个图保存到列表中 plots
。
plots <- list()
for (i in 1:238)
{
gene <- row.names(geneExpression)[i]
df.sub <- df[ , c("source", gene)]
names(test.sub) <- c("source", "exp")
plots[[i]] <- ggplot() + geom_violin(data=test.sub, aes(source, exp, fill=source, color=source), alpha=.4, trim=F, environment = environment()) + coord_flip() + ggtitle(gene) + theme(legend.position="none") + labs(x="")
}
我正在按照其他地方的建议使用 gridExtra 函数,但是当我这样做时,它会在一页中打印所有绘图(240 个绘图)。
pdf("violinPlots.pdf")
do.call(grid.arrange, plots)
dev.off()
有什么方法可以指定每页 24 个绘图? (即 6 行 x 4 列?)
我试过了,但是 returns 出错了...
grid.arrange(plots, ncol=4, newpage = T )
您可以使用 gridExtra 的 marrangeGrob 函数:
pdf("violinPlots.pdf")
ml <- marrangeGrob(grobs = plots, nrow = 6, ncol = 4)
print(ml)
dev.off()
我已经使用 ggplot
通过 for 循环创建了许多图,并将每个图保存到列表中 plots
。
plots <- list()
for (i in 1:238)
{
gene <- row.names(geneExpression)[i]
df.sub <- df[ , c("source", gene)]
names(test.sub) <- c("source", "exp")
plots[[i]] <- ggplot() + geom_violin(data=test.sub, aes(source, exp, fill=source, color=source), alpha=.4, trim=F, environment = environment()) + coord_flip() + ggtitle(gene) + theme(legend.position="none") + labs(x="")
}
我正在按照其他地方的建议使用 gridExtra 函数,但是当我这样做时,它会在一页中打印所有绘图(240 个绘图)。
pdf("violinPlots.pdf")
do.call(grid.arrange, plots)
dev.off()
有什么方法可以指定每页 24 个绘图? (即 6 行 x 4 列?)
我试过了,但是 returns 出错了...
grid.arrange(plots, ncol=4, newpage = T )
您可以使用 gridExtra 的 marrangeGrob 函数:
pdf("violinPlots.pdf")
ml <- marrangeGrob(grobs = plots, nrow = 6, ncol = 4)
print(ml)
dev.off()