R代码不保存绘图图像

时间:2013-11-21 19:04:22

标签: r plot png levelplot

以下代码生成图像:

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()
}

1 个答案:

答案 0 :(得分:6)

好吧,我只会在评论中写下我写的答案。

在您自己的循环或函数中绘制latticeggplot2图时,您必须明确print lattice / ggplot2

试试这个:

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 Why do lattice/trellis graphics not work?

编辑:

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

png(filename="plot_%02d.png")会将第一个图保存为plot_01.png,第二个图保存为plot_02.png等。