[R-sig-Geo] problem saving spplot in a loop

Paul Hiemstra p.hiemstra at geo.uu.nl
Mon Dec 7 17:48:52 CET 2009


Hi,

This is a byproduct of the fact that under the hood spplot uses lattice 
commands (levelplot and xyplot) to make the plots. This behavior is a 
FAQ for lattice commands, and thus spplot. Even shorter than Henk's 
suggestion is to use:

png(filename=...)
print(spplot(...))
dev.off()

cheers,
Paul

Henk Sierdsema schreef:
> Hi Alex,
>
> You have to assign the plot to a temporary variable (like tmp <- spplot(...)) and then use print(tmp1) to save it in the png-file
>
> so somethink like:
>
> tmp <- spplot(...)
> png(filename=...)
> print(tmp)
> dev.off()
>
>
> Succes!
>
>
> Henk
> -------------------------
>
>
> Henk Sierdsema 
>
> SOVON Vogelonderzoek Nederland / SOVON Dutch Centre for Field Ornithology 
>
> Rijksstraatweg 178 
> 6573 DG Beek-Ubbergen 
> The Netherlands 
> tel: +31 (0)24 6848145 
> fax: +31 (0)24 6848122 
>
>
>
>
> -----Oorspronkelijk bericht-----
> Van: r-sig-geo-bounces at stat.math.ethz.ch
> [mailto:r-sig-geo-bounces at stat.math.ethz.ch]Namens Alexandre VILLERS
> Verzonden: maandag 7 december 2009 15:09
> Aan: Aide R SIG GEO
> Onderwerp: [R-sig-Geo] problem saving spplot in a loop
>
>
> Hey,
>
> I wrote a loop and want to save plots of multiple 
> SpatialPolygonDataFrame objects with something like
>
> png(paste("K:/Outarde/ADrien/FigTemp/PGR",l,"_",j,".png",sep=""), 
> height=1000, width=2000,res=300)
> b<-spplot(grTs[,c("PGRobs04","PGRobs48")], 
> col.regions=palAb(30)            
> dev.off()
>
> and
>
> png(paste("K:/Outarde/ADrien/FigTemp/Abondance",l,"_",j,".png",sep=""), 
> height=1000, width=3000,res=300)
> spplot(grTs[,c("ov2000","ov2004","ov2008")], 
> col.regions=palAb(17),at=cutsAb)
> dev.off()
>
> When I run "manually" the code (specifying the l and j values for the 
> loop), everything is fine and I get nice png files. When the code loops 
> on its own, I get blank images. I suspect this is a problem of the time 
> taken by spplot to build the image in time for saving in the loop.
> Is this correct and how can I properly overcome this problem ?
>
> Best regards
>
> Alex
>
>



More information about the R-sig-Geo mailing list