Gerhard.Thallinger at tugraz.at
2006-May-13 16:54 UTC
[Rd] windows( ... ,rescale="fixed") bug (PR#8857)
Full_Name: Gerhard Thallinger Version: 2.3.0; 2.2.0 OS: Windows XP Submission from: (NULL) (212.183.54.87) Invoking windows() with the parameter rescale="fixed" followed by plot.new() or any other plot command causes very often the following error: windows(width=7, height=7, rescale="fixed");plot.new() Error in plot.new() : outer margins too large (fig.region too small) The values in the width and height parameters seem not to have an influence. Investigating the problem more deeply shows that certain values in the device structure are set to 0 or have some invalid value (bty, cex, ljoin, ... ) after the call to windows() when plot.new() fails. This indicates that the device structure is either not initialized properly or gets clobbered somehow.
On 5/13/2006 12:54 PM, Gerhard.Thallinger at tugraz.at wrote:> Full_Name: Gerhard Thallinger > Version: 2.3.0; 2.2.0 > OS: Windows XP > Submission from: (NULL) (212.183.54.87) > > > Invoking windows() with the parameter rescale="fixed" followed by plot.new() > or any other plot command causes very often the following error: > > windows(width=7, height=7, rescale="fixed");plot.new() > Error in plot.new() : outer margins too large (fig.region too small) > > The values in the width and height parameters seem not to have an influence. > Investigating the problem more deeply shows that certain values > in the device structure are set to 0 or have some invalid value > (bty, cex, ljoin, ... ) after the call to windows() when plot.new() fails. > > This indicates that the device structure is either not initialized properly > or gets clobbered somehow. >I can confirm the bug in R-devel. A workaround is to open the window without specifying "fixed", then in the menu, select fixed. That suggests to me something wasn't being initialized. I'll take a look... Duncan Murdoch
murdoch at stats.uwo.ca
2006-May-13 19:27 UTC
[Rd] windows( ... ,rescale="fixed") bug (PR#8857)
On 5/13/2006 1:51 PM, Duncan Murdoch wrote:> On 5/13/2006 12:54 PM, Gerhard.Thallinger at tugraz.at wrote: >> Full_Name: Gerhard Thallinger >> Version: 2.3.0; 2.2.0 >> OS: Windows XP >> Submission from: (NULL) (212.183.54.87) >> >> >> Invoking windows() with the parameter rescale="fixed" followed by plot.new() >> or any other plot command causes very often the following error: >> >> windows(width=7, height=7, rescale="fixed");plot.new() >> Error in plot.new() : outer margins too large (fig.region too small) >> >> The values in the width and height parameters seem not to have an influence. >> Investigating the problem more deeply shows that certain values >> in the device structure are set to 0 or have some invalid value >> (bty, cex, ljoin, ... ) after the call to windows() when plot.new() fails. >> >> This indicates that the device structure is either not initialized properly >> or gets clobbered somehow. >> > > I can confirm the bug in R-devel. A workaround is to open the window > without specifying "fixed", then in the menu, select fixed. That > suggests to me something wasn't being initialized. I'll take a look...I've taken a look, and tracked it down this far: While setting up, the graphics device installs a callback called HelpExpose that's called when drawing the window. For some reason I haven't figured out, rescale="fixed" causes this to be called before the window is ready, and junk in the structure leads to the error. I won't be able to do any more on this for a couple of days. Duncan Murdoch