1

を使用して for ループを介して多数のプロットを作成し、ggplot各プロットをリストに保存しました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 プロット) が 1 ページに印刷されます。

pdf("violinPlots.pdf")
do.call(grid.arrange, plots)
dev.off()

ページごとに 24 個のプロットを指定する方法はありますか? (つまり、6 行 x 4 列?)

これを試しましたが、エラーが返されます...

grid.arrange(plots, ncol=4, newpage = T )
4

1 に答える 1

2

gridExtra の marrangeGrob 関数を使用できます

pdf("violinPlots.pdf")
ml <- marrangeGrob(grobs = plots, nrow = 6, ncol = 4)
print(ml)
dev.off()
于 2015-04-16T17:58:38.037 に答える