我正在循环中绘制R中的大量数据,并使用png()
将图表导出为300dpi分辨率的png。凭借我的所有数据,我最终创造了大约2000个地块。执行大约需要15分钟。使用postscript()
导出到postscript时,处理整个数据大约需要20秒。生成的.png的大致文件大小约为300KB,而.ps的大小约为5KB
有人知道比这更快的png导出方法吗?谢谢你的建议。
# Plot NAME and ID as filename
for(i in 1:length(ind)){
png(names(ind[i]), width=3358, height=2329, res=300)
# if postscript; uncomment following line
# postscript(names(ind[i]))
par(mar=c(6,8,6,5))
plot(ind[[i]][,c('YEAR','VALUE')],
type='b',
main=ind[[i]][1,'NAME'],
xlab="Time [Years]",
ylab="Value [mm]")
dev.off()
}
答案 0 :(得分:2)
所以可重现的例子是:
dir.create("DummyPlots")
setwd("DummyPlots")
system.time( for(i in 1:500)
{ png(paste0("Image", i, ".png")) ; plot( i ) ; dev.off() })
# 7.5 s
这是一种更快的方式:
system.time( {png("FastImage%03d.png")
for(i in 1:500)
plot( i )
dev.off() })
# 5.2 s
setwd("..")
unlink("DummyPlots", recursive=TRUE)