列表中的多个ggplot对象在循环中被更改

时间:2017-03-02 10:26:02

标签: r list ggplot2

我将多个ggplots保存到一个列表中,以便在后续的多时隙中使用。绘图在循环中生成并附加到列表中,但是,在循环之后,列表中的所有绘图对象都与循环的最后一个绘图相同。我以前做过这种操作,没有任何问题。有没有人经历过同样的事情,并解决了这个问题?

figList <- list()

aoinum <- 1
for (aoi in AOI_list){
    ...
    # prepare dataframe for plotting
    dat <- data.frame(...)

    fig <- ggplot(data=dat, aes(x=x, y=y,  fill=z, alpha=q)) +
        geom_bar(...)+ 
        ...

    figList[[aoi]] <- fig

    aoinum = aoinum + 1
}

1 个答案:

答案 0 :(得分:0)

这就是我设法在for循环中创建一个列表的方法

#Define list
ggcluster<-list()

for (cluster in 1:nclusters){
  # Simple plot )geom_polygon in my case)
  ggcluster[[cluster]]<-ggplot() + 
    geom_polygon(data = datoshp.df, aes(long, lat, group = group)) 
}  

# Build multiplot panel (two columns)

pngname<-paste(output_path,"plot-name",".png",sep="")
png(pngname,width = 1000, height = 1000)
do.call(grid.arrange, c(ggcluster,list(ncol=2)))
dev.off()