Skip to content

Error with strwidth after lattice graphic drawn

4 messages · Frank E Harrell Jr, Brian Ripley, Uwe Ligges

#
In

platform i386-pc-linux-gnu
arch     i386
os       linux-gnu
system   i386, linux-gnu
status
major    2
minor    0.1
year     2004
month    11
day      15
language R

I'm getting an error when using strwidth after a lattice graphic is drawn:

library(lattice)
xyplot(runif(20) ~ runif(20))
strwidth('xxx')

Error in strwidth("xxx") : invalid graphics state

Any help appreciated.  I have version 2.0.1 of grid and version 0.10-14 
of lattice.
#
On Sat, 20 Nov 2004, Frank E Harrell Jr wrote:

            
The advice is `don't do that'!

strwidth() is a base graphics command, and will only work if a device is 
currently plotting base graphics.  Lattice is built on grid, which has
stringWidth().
#
Prof Brian Ripley wrote:
... and convertWidth() is useful to display stuff afterwards in an 
interpretable way  ...

Uwe Ligges
#
Uwe Ligges wrote:
Thanks Uwe and Brian.  Before the latest versions, grid would let me use 
ordinary graphics functions to deal with the currently rendered plot 
after I did par(usr=c(0,1,0,1)), so I was lazy.  I changed my code to 
use specific grid functions.