a を使用しfor loop
て ggplots を a に割り当てlist
、それをplot_grid()
(package cowplot
) に渡します。plot_grid
複数の ggplot を 1 つの図に並べて配置します。これは手動で問題なく動作しますが、 を使用するfor loop
と、最後に生成されたプロットが Figure の各サブフレームで繰り返されます (以下を参照)。つまり、すべてのサブフレームが同じ ggplot を示します。
おもちゃの例を次に示します。
require(cowplot)
dfrm <- data.frame(A=1:10, B=10:1)
v <- c("A","B")
dfmsize <- nrow(dfrm)
myplots <- vector("list",2)
count = 1
for(i in v){
myplots[[count]] <- ggplot(dfrm, aes(x=1:dfmsize, y=dfrm[,i])) + geom_point() + labs(y=i)
count = count +1
}
plot_grid(plotlist=myplots)
期待値:
からの図for loop
:
この質問で説明されているように、次のようにリスト要素をグロブに変換してみました。
mygrobs <- lapply(myplots, ggplotGrob)
plot_grid(plotlist=mygrobs)
しかし、私は同じ結果を得ました。
問題は ではなくループ割り当てにあると思いますが、plot_grid()
何が間違っているのかわかりません。