0
我將多個ggplots保存到列表中,以便在隨後的多槽中使用。圖形在循環中生成並附加到列表中,但循環後,列表中的所有繪圖對象都與循環的最後一個繪圖相同。我之前完成過這種操作,沒有任何問題。有沒有人遇到過相同的問題,並解決了這個問題?列表中的多個ggplot對象在循環中被更改
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
}
你可以提供一個可重複的例子嗎? –
看起來您的情節總是相同的,只是數據不同而已。如果是這樣的話,不要製作新的情節,只做一次情節,並應用不同的數據:'lapply(list_of_data_frames,function(df)fig%+%df)'。一般來說,不要使用'for'循環通過追加來創建列表。這是低效和混亂的。改用列表函數。 –
有些觀點: - 你使用aoinum變量是什麼? - 我會用一個數字索引來代替變量的名字或者任何'aoi'指的。 - 當你構建dat時,問題可能出現在「隱藏」代碼中。 – R18