[R] map() and pdf clipping
Ben Tupper
btupper at bigelow.org
Tue Nov 30 18:03:35 CET 2010
On Nov 30, 2010, at 10:44 AM, Peter Ehlers wrote:
> 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.
Perfect!
Thank you, Peter.
Cheers,
Ben
>
> 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/
>>>
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