trellis.focus with postscript device
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