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

好吧,我将在评论中写下我写的内容作为答案。

在您自己的循环或函数中绘图latticeggplot2绘图时,您必须明确printlattice/ ggplot2plots

尝试这个:

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 常见问题的这一部分在这里是相关的:7.22 为什么格子/格子图形不起作用?

编辑:

我将png代码更改为在循环之前并放在dev.off()循环之外。

png(filename="plot_%02d.png")将第一个图保存为plot_01.png,第二个图保存为 ,依此类推plot_02.png

于 2013-11-21T19:21:35.927 回答