私はたくさんのプロットが生成されている関数を書いています。私はこれらのすべてのプロットを別々のpngファイルに保存したいと思いますが、png()でそれらを1つずつ実行したくない場合は、これを行う方法がわかりません。要するにリストに大量のggplotを集めてpngファイルを別々に保存しますか?
make_graphs <-function(MyData){
a <- ggplot(data = MyData, aes(y = Y1, x = X)) + geom_point()
b <- ggplot(data = MyData, aes(y = Y2, x = X)) + geom_point()
c <- ggplot(data = MyData, aes(y = Y3, x = X)) + geom_point()
d <- ggplot(data = MyData, aes(y = Y4, x = X)) + geom_point()
#...etc...
x <- ggplot(data = MyData, aes(y = Y24, x = X)) + geom_point()
y <- ggplot(data = MyData, aes(y = Y25, x = X)) + geom_point()
Z <- ggplot(data = MyData, aes(y = Y26, x = X)) + geom_point()
# Here I need some way to collect all the plots a-z and write them to files.
}
make_graphs(MyData)
、私は:プロットの変数やその他の機能はそれほど規則的ではないものの
基本的に私のコードは、以下のものに似ています(私はforループ書かれているだろう)私がazに割り当てたプロットのリストを生成する方法を探して、そのリストを使ってpngとして保存することができます。私のプロット名はa-zよりも複雑で、プロットは関数に追加されます - 手動でリストに追加する必要はありません。
どうすればいいですか?
リストを持った後、私はthisような何かを行うことを計画します。
plotlist = mget(plots)
pdf("all.pdf")
invisible(lapply(plotlist, print))
dev.off()
またはthis:
lapply(names(plots),
function(x)ggsave(filename=paste(x,".jpeg",sep=""), plot=plots[[x]]))
'myplots < - list();私がループでこれらのプロットを作成しない理由は分かりません。 – Roland
わかりやすくするために、上のコードでプロットを単純化しました。しかし、彼らは実際にはすべて異なっています;回帰線の有無にかかわらず、異なるXとY、ボックスプロット、散布図、異なる美学など(あなたがおそらく推測したように、私はRの初心者です。しかし、私はそれを得ると思います!今すぐ試してみます) –
それを作成するときにリストに入れておきます。そして 'for'ループを使用してください。' lapply'ループではありませんif – Roland