[R] trellis.focus with postscript device

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jul 19 17:58:06 CEST 2006


On 7/19/06, Soukup, Mat <Mat.Soukup at fda.hhs.gov> wrote:
> Hello.
>
> First: R 2.3.1 on Windows XP.
>
> I am trying to add information (sample size) to the Trellis strips which
> I am successful using the trellis.focus function with the default
> Windows device. However, I typically use the postscript device as I use
> LaTeX and \includegraphic for incorporating graphs into stat reviews.
>
> Here's some example code (apologies for the lack of creativity and
> resemblance to a real example)
>
> yy <- c(rnorm(20,2),rnorm(35,3), rnorm(30,2),rnorm(20,3),rnorm(4,2),
> rnorm(10,3))
> xx <- c(1:20,1:35,1:30,1:20,1:4,1:10)
> gg <- rep(c('A','B','A','B','A','B'), c(20,35,30,20,4,10))
> pp <- rep(c('Cond 1','Cond 2','Cond 3'), c(55, 50, 14))
>
> xyplot(yy ~ xx | pp, groups=gg)
> trellis.focus('strip', 1, 1)
> ltext(0,.5,'20',col='red', pos=4)
> ltext(1,.5,'35',col='black', pos=2)
> trellis.unfocus()
> trellis.focus('strip', 2, 1)
> ltext(0,.5,'30',col='red', pos=4)
> ltext(1,.5,'20',col='black', pos=2)
> trellis.unfocus()
> trellis.focus('strip', 1, 2)
> ltext(0,.5,'4',col='red', pos=4)
> ltext(1,.5,'10',col='black', pos=2)
> trellis.unfocus()
>
> This works. But if I do,
>
> postscript('C:/TEMP/example.eps')
> # All code as above
> dev.off()
>
> I notice a problem with the graphic. When looking at the EPS figure, the
> only strip with added data is the first one (bottom left) with the strip
> still highlighted in red (i.e. it doesn't appear that trellis.unfocus()
> was executed).

Actually, you have produced a multiple-page postscript file, with what
you really want in the last page. If you highlight the strips when
calling trelis.focus, they have to be un-highlighted by
trellis.unfocus. In theory, this is just a removal of a rectangle
object. In practice, grid achieves this by drawing a new page. You
need to avoid this.

Your options are:

(1) add 'highlight = FALSE' to all trellis.focus() calls
(2) run the script in batch mode, where the default highlight =
interactive() is FALSE

I'll think about adding an option to control the default.

Deepayan



More information about the R-help mailing list