2015-04-16 48 views
1

我使用ggplot通過for循環創建了多個圖,並將每個圖保存到列表plots中。如何使用gridExtra指定每頁打印多個圖的行數和列數?

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行×4列)

我試過,但它返回一個錯誤......

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

回答

2

您可以使用gridExtra的marrangeGrob功能:

pdf("violinPlots.pdf") 
ml <- marrangeGrob(grobs = plots, nrow = 6, ncol = 4) 
print(ml) 
dev.off() 
+0

謝謝你,大衛! – gaelgarcia

相關問題