R代码不';不保存打印图像

R代码不';不保存打印图像,r,plot,png,levelplot,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,

以下代码生成一个图像:

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

好吧,我会把我在评论里写的写下来作为回答

当在自己的循环或函数中打印
lattice
ggplot2
时,必须显式
打印
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()
库(latticeExtra)
png(filename=“plot_u%02d.png”)
(i)在下文(1,5)中){
x=runif(40)
y=runif(40)
z=runif(40)
#将晶格图指定给myPlot

我的绘图对于
lattice
绘图,我认为必须显式地
打印它们才能将它们保存在一个循环中。例如
latPlot,请参见R常见问题解答中的此链接:我也有同样的问题,但在
plot(NA,xlim=0:1,ylim=0:1,bty=“n”,axes=0)中有
(即
plot()
而不是
ggplot
)。但此解决方案似乎不适用于此。我拥有的代码工作正常,但只要我将
png()
放在它前面(和
dev.off())之后,它无法写入文件,甚至无法在RStudio查看器中显示绘图pane@stevec最好把你的问题作为一个新问题来问。据我所知,
plot()
不需要
print
解决方法