6

次のコードは画像を生成します。

library(latticeExtra)
x=runif(40)
y=runif(40)
z=runif(40)
png(filename=paste(i,".png",sep=""))
levelplot(z ~ x + y, panel = panel.levelplot.points, col.regions = rainbow(50))
dev.off()

しかし、次のコードはそうではありません。なんで?

library(latticeExtra)
for(i in seq(1,5)) {
    x=runif(40)
    y=runif(40)
    z=runif(40)
    png(filename=paste(i,".png",sep=""))
    levelplot(z ~ x + y, panel = panel.levelplot.points, col.regions = rainbow(50))
    dev.off()
}
4

1 に答える 1

8

まあ、コメントに書いたことを答えとして書いておきます。

独自のループまたは関数内でプロットlatticeまたはプロットする場合は、明示的に/プロットする必要がありますggplot2printlatticeggplot2

これを試して:

library(latticeExtra)
png(filename="plot_%02d.png")
for(i in seq(1,5)) {
    x=runif(40)
    y=runif(40)
    z=runif(40)
    # Assign your lattice plot to myPlot
    myPlot <- levelplot(z ~ x + y, panel = panel.levelplot.points, col.regions = rainbow(50))
    print(myPlot)
}
dev.off()

R FAQ のこの部分がここに関連していると思います: 7.22 ラティス/トレリス グラフィックスが機能しないのはなぜですか?

編集:

pngループの前に来るようにコードを変更し、ループdev.off()の外側に配置しました。

png(filename="plot_%02d.png")plot_01.png最初のプロットを、2 番目のプロットをplot_02.pngなどとして保存します。

于 2013-11-21T19:21:35.927 に答える