[R] map() and pdf clipping

Ben Tupper btupper at bigelow.org
Tue Nov 30 13:56:05 CET 2010


Hi,

I thought it might help if I posted the resulting images.

This is the pdf file where the map polygons are not clipped to the  
plotting boundary.

http://dl.dropbox.com/u/8433654/test-map.pdf

And this is the png file showing the same polygons clipped to the  
plotting boundary which is what I hope to see in the pdf, too.

http://dl.dropbox.com/u/8433654/test-map.png


I suspect that there is some simple parameter or sequence I am  
missing... something that a good-heatred dope slap will solve!

Thanks,

Ben



On Nov 29, 2010, at 2:03 PM, Ben Tupper wrote:

> Hello,
>
> Below is a function (test.map) that permits drawing the same map  
> using three different devices.  The "pdf" device doesn't clip  
> polygons to the plot region as I see it does by both the native  
> device (in my case "Quartz") and the "png" device.
>
> test.map("pdf")  # produces "test-map.pdf" with no clipping
> test.map("png")  # produces "test-map.png" with clipping
> test.map(NA) 	# draws on the window device with clipping
>
> It doesn't appear to matter what the value of the fill argument is -  
> the pdf output shows that the polygons are not being clipped to the  
> plot region.
>
> I have viewed the pdf output using Mac OSX's Preview, PDFPen, Adobe  
> Reader and Safari and they all render the same way. So my hunch is  
> that it is not a viewer issue (although I suppose they might be  
> using the same rendering engine under the hood.)
>
> Any help would be greatly appreciated.
>
> Thanks and cheers,
> Ben
>
> ###### BEGIN
> library(maps)
>
> test.map <- function(to.file = c("pdf", "png", NA)[1], fill = TRUE){
>
>   if (!is.na(to.file)){
>      ofile = paste("test-map", to.file,sep = ".")
>      do.call(to.file, list(file=ofile))
>   }
>   xr <- c(-185, -155)
>   yr <- c(45, 70)
>
>   map(xlim = xr, ylim = yr)
>   map.axes()
>
>   m <- matrix(seq(0, 1, length = 40*40), nrow = 40)
>   mr <- as.raster(m)
>   rasterImage(m, -180, 50, -160, 65)
>
>   map(xlim = xr, ylim = yr, fill = fill, add = TRUE)
>
>   if (!is.na(to.file)){
>      cat("wrote:", ofile, "\n")
>      dev.state <- dev.off()
>   }
>
> }
>
>
> ###### END
>
>
> > sessionInfo()
> R version 2.12.0 (2010-10-15)
> Platform: i386-apple-darwin9.8.0/i386 (32-bit)
>
> locale:
> [1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8
>
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
>
> other attached packages:
> [1] mapproj_1.1-8.2    akima_0.5-4        RColorBrewer_1.0-2
> [4] mapdata_2.1-3      maps_2.1-5
>
> loaded via a namespace (and not attached):
> [1] tools_2.12.0
>
>
>
> Ben Tupper
> Bigelow Laboratory for Ocean Sciences
> 180 McKown Point Rd. P.O. Box 475
> West Boothbay Harbor, Maine   04575-0475
> http://www.bigelow.org/
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

Ben Tupper
Bigelow Laboratory for Ocean Sciences
180 McKown Point Rd. P.O. Box 475
West Boothbay Harbor, Maine   04575-0475
http://www.bigelow.org/



More information about the R-help mailing list