已在for循环中创建的多个ggplot2图的网格
作为一个新的ggplot2用户,我有点迷失了很多可能性,并且很难在网上找到我认为是一个简单问题的简单答案。
我想在同一张纸上显示ggplot2的多个图表,但知道这些图表来自for循环。
以下示例不编译,只是为了说明:
for(i in c(1:n)){
for(j in c(1:m)){
.......... # some data production
p <- ggplot(df.all) + geom_bar(aes_string(x=class.names[i],fill=var.names[j])
}}
在这里,p被覆盖了,但是我想要有一个矩阵或者一个列表,在这个列表中我可以把所有的p作为他们生成的,然后一个简单的函数就像
display_in_a_grid(list_of_ggplot_plots)
但据我所知,我无法制作一个剧情矩阵的列表,也没有找到一个只有一个参数输入的函数。
关于我看过的东西:
包gridExtra中的“arrangeGrob”不起作用,因为它需要每个绘图的明确名称(例如:p1,p2,p3,...),如http://code.google.com/p/gridextra/wiki/ arrangeGrob
ggplot2的“facet”方法不适用于我的数据集的组织(或相反:p)
你有一个简单的方法来管理这个?
谢谢,
弗朗索瓦
我会倾向于同意里奇,但如果你想自己安排他们:
library(gridExtra)
library(ggplot2)
p <- list()
for(i in 1:4){
p[[i]] <- qplot(1:10,10:1,main=i)
}
do.call(grid.arrange,p)
看看最后的例子?arrangeGrob
寻找消除for循环的方法:
plots = lapply(1:5, function(.x) qplot(1:10,rnorm(10),main=paste("plot",.x)))
require(gridExtra)
do.call(grid.arrange, plots)
链接地址: http://www.djcxy.com/p/30873.html
上一篇: Grid of multiple ggplot2 plots which have been made in a for loop