我将多个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
}
答案 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()