[Rd] strange interaction between rasterImage and Grid graphics
Paul Murrell
p.murrell at auckland.ac.nz
Sun Oct 3 01:35:52 CEST 2010
Hi
baptiste auguie wrote:
> Dear all,
>
> This may be specific to Mac, I haven't had a chance to test another
> platform. Consider this,
>
> plot(1,1,t="n")
> rasterImage(matrix(1),1,1,1,1)
> library(grid)
> grid.rect(gp=gpar(fill="grey"))
>
> The grid.rect covers the full device window as expected. However, when
> I resize the window ever so slightly (interactive device) the rectGrob
> is suddenly clipped to the previous plot window. I cannot understand
> this behavior, and it doesn't happen if one removes the rasterImage()
> call, so I suspect something iffy is going on with the display list or
> something.
It happens like this:
# 1. Clip to the device and draw axes and labels
plot(1,1,t="n")
# 2. Clip to the plot region and draw raster
rasterImage(matrix(1),1,1,1,1)
library(grid)
# Oooh! This is the first time any grid drawing
# has occurred on the device, so initialize grid
# stuff, including the top-level viewport,
# *which clips to the device*
# 3. Draw a rectangle
grid.rect(gp=gpar(fill="grey"))
# Resize the window ...
# which triggers a redraw ...
# Oooh! There is grid output on this device so
# initialize grid stuff, including the top-level
# viewport *which clips to the device* ...
# 1. Clip to the device and draw axes and labels
# 2. Clip to the plot region and draw raster
# 3. Draw a rectangle
A workaround is to explicitly do a clip before the grid.rect(), i.e., ...
plot(1,1,t="n")
rasterImage(matrix(1),1,1,1,1)
library(grid)
grid.clip()
grid.rect(gp=gpar(fill="grey"))
... and I will add this example to the things I will look at when I am
trying to clean up the grid code a bit.
> The only device I've tried is quartz(), x11() crashed with rasterImage,
That is more serious. I have heard of a couple of others like this and
I think the common thread may be 64-bit MacOS X. I need to get access
to such a beast to take a look.
Paul
> *** caught segfault ***
> address 0x28, cause 'memory not mapped'
>
> Traceback:
> 1: rasterImage(matrix(1), 1, 1, 1, 1)
>
> sessionInfo()
> R version 2.11.1 (2010-05-31)
> x86_64-apple-darwin9.8.0
>
> locale:
> [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
>
> attached base packages:
> [1] grid stats graphics grDevices utils datasets methods base
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/
More information about the R-devel
mailing list