Thanks, Peter.
I did the following: restart R and run the same code with and without a minimal
system pause (Sys.sleep) after the line that adds the device to the GTK window.
Adding a pause will make it work, though I do not understand what is happening
here. Note the different settings of par("din").
This is probably not the expected behavior, I guess.
Any ideas why this is the case? It seems as if "din" is not adjusted on time?
Might that be?
> library(RGtk2)
> library(cairoDevice)
>
> win = gtkWindow()
> da = gtkDrawingArea()
> asCairoDevice(da)
[1] TRUE
> win$add(da)
> plot(1:10)
Fehler in plot.new() : Grafikränder zu groß
> par(c("din", "mai"))
$din
[1] 0.01388889 0.01388889
$mai
[1] 0.7791667 0.6263889 0.6263889 0.3208333
> win = gtkWindow()
> da = gtkDrawingArea()
> asCairoDevice(da)
[1] TRUE
> win$add(da)
> Sys.sleep(.1)
> plot(1:10)
> par(c("din", "mai"))
$din
[1] 2.777778 2.777778
$mai
[1] 0.7791667 0.6263889 0.6263889 0.3208333
Thanks in advance
--- Mark
Am 09.03.2012 um 00:01 schrieb peter dalgaard:
>
> On Mar 8, 2012, at 23:25 , Mark Heckmann wrote:
>
>> Peter, thanks for the answer!
>> Indeed, it does work if I set par(mar=c(0,0,0,0)) but not when it is set to
>> the default values mar=c(5.1, 4.1, 4.1, 2.1).
>> The par settings returned in the example are the defaults, so no
>> extraordinary big mar settings or char size (see below).
>> Also, it does not matter what size the drawing area is set to (e.g. 1000x
>> 1000). The error always occurs.
>> Any idea?
>>
>
> The other parameters...
>
> What about "din" and "mai"? The margin problem usually means that the sum of
> the relevant margins is bigger than the device size. E.g.
>
>> quartz()
>> par(mai=rep(4,4))
>> plot(0)
> Error in plot.new() : figure margins too large
>
>
>
>> examples:
>>
>>> win = gtkWindow()
>>> da = gtkDrawingArea()
>>> win$add(da)
>>> asCairoDevice(da)
>> [1] TRUE
>>> par(c("mar", "cra", "oma"))
>> $mar
>> [1] 5.1 4.1 4.1 2.1
>>
>> $cra
>> [1] 7 11
>>
>> $oma
>> [1] 0 0 0 0
>>
>>> plot(1:10)
>> Fehler in plot.new() : Grafikränder zu groß ###ERROR###
>>
>> Thanks
>> Mark
>>
>>
>> Am 08.03.2012 um 22:48 schrieb peter dalgaard:
>>
>>>
>>> On Mar 8, 2012, at 20:27 , Mark Heckmann wrote:
>>>
>>>> When using a gtkDrawingArea as a Cairo device I very often encounter the
>>>> error: "figure margins too large"
>>>> Even for the below "getting started" example from
>>>> http://www.ggobi.org/rgtk2/ this is the case.
>>>>
>>>>> win = gtkWindow()
>>>>> da = gtkDrawingArea()
>>>>> win$add(da)
>>>>> asCairoDevice(da)
>>>> [1] TRUE
>>>>> plot(1:10)
>>>> Fehler in plot.new() : Grafikränder zu groß
>>>>>
>>>>
>>>> Also enlarging the drawing area does not help.
>>>>
>>>>> win = gtkWindow()
>>>>> da = gtkDrawingArea()
>>>>> win$add(da)
>>>>> asCairoDevice(da)
>>>> [1] TRUE
>>>>> da$setSizeRequest(700, 700)
>>>>> plot(1:10)
>>>> Fehler in plot.new() : Grafikränder zu groß
>>>>
>>>> Any ideas?
>>>
>>> I'd check the par() settings for the device. Especially mar/mai and cra/cin
>>> to see whether margins are set unusually large and/or character sizes are
>>> unusually big, but check help(par) yourself.
>>>
>>> --
>>> Peter Dalgaard, Professor,
>>> Center for Statistics, Copenhagen Business School
>>> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
>>> Phone: (+45)38153501
>>> Email: [email protected] Priv: [email protected]
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>> Mark Heckmann
>> Blog: www.markheckmann.de
>> R-Blog: http://ryouready.wordpress.com
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
> --
> Peter Dalgaard, Professor,
> Center for Statistics, Copenhagen Business School
> Solbjerg Plads 3, 2000 Frederiksberg, Denmark
> Phone: (+45)38153501
> Email: [email protected] Priv: [email protected]
>
>
>
>
>
>
>
>
Mark Heckmann
Blog: www.markheckmann.de
R-Blog: http://ryouready.wordpress.com
[[alternative HTML version deleted]]
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.