Skip to content
Back to formatted view

Raw Message

Message-ID: <41A0B9C1.5090801@vanderbilt.edu>
Date: 2004-11-21T15:52:33Z
From: Frank E Harrell Jr
Subject: Error with strwidth after lattice graphic drawn
In-Reply-To: <419F8AB3.9050203@statistik.uni-dortmund.de>

Uwe Ligges wrote:
> Prof Brian Ripley wrote:
> 
>> On Sat, 20 Nov 2004, Frank E Harrell Jr wrote:
>>
>>> 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.
>>
>>
>>
>> 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().
>>
> 
> ... and convertWidth() is useful to display stuff afterwards in an 
> interpretable way  ...
> 
> Uwe Ligges
> 

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.

-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University