On 2010-11-30 04:56, Ben Tupper wrote:
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!

Hi Ben,
I haven't figured out why this occurs - seems to be something
to do with the way rasterImage and pdf play together. But this
works for me: insert the following line

 do.call("clip", as.list(par('usr')))

before your final map call.

Peter Ehlers

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@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.

Reply via email to