I am plotting a lot of data in R in a loop and export the plots to png in 300dpi resolution using png(). With all my data I am creating about 2000 plots in the end. This takes about 15 minutes to execute. When exporting to postscript using postscript() it takes about 20 seconds to process the whole data. The approximate file size for a resulting .png is about 300KB and for a .ps it is about 5KB
Is anyone aware of a faster png export method than this? Thank you for your suggestions.
# 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()
}
So a reproduicible example would be:
dir.create("DummyPlots")
setwd("DummyPlots")
system.time( for(i in 1:500)
{ png(paste0("Image", i, ".png")) ; plot( i ) ; dev.off() })
# 7.5 s
Here's a way that's a little faster:
system.time( {png("FastImage%03d.png")
for(i in 1:500)
plot( i )
dev.off() })
# 5.2 s
setwd("..")
unlink("DummyPlots", recursive=TRUE)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With