以下代码生成图像:
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()
}
答案 0 :(得分:6)
好吧,我只会在评论中写下我写的答案。
在您自己的循环或函数中绘制lattice
或ggplot2
图时,您必须明确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
等。