[R] Passing par()-parameters to many plot()s in a function

Alexx Hardt mikrowelle1234 at gmx.de
Fri Dec 3 21:00:01 CET 2010


Am 03.12.2010 20:31, schrieb Duncan Murdoch:
> On 03/12/2010 12:22 PM, Alexx Hardt wrote:
>> Hi,
>> I am implementing a function which generates about 10 .pdf plots in the
>> current directory.
>> I need the graphic to fit into a LaTeX-Presentation-slide, so the outer
>> margin should be removed (this is the way to do it, right?):
>>
>> I am having trouble finding out where to put the par command(s). Is one
>> enough or should I put them before and after /every/ plot() command?
>> This is how I tried to do it (without success):
>
> Generally speaking par() affects the current graphics device.  Your 
> code below only opens one graphics device,
> so it should be fine to call par() once. (But you did forget to call 
> dev.off(), so you will probably run into problems on the last plot.)
>
> Another way to do this is to call pdf() and dev.off() 10 times.  The 
> pdf.options() function sets defaults for a number of things related to 
> a new pdf() device, but par() options are not included, so you'd need 
> to call it before each plot.
>
> There are surely some par() options that are cleared as you move to a 
> new plot in your onefile=FALSE usage; I don't think the margin 
> parameters are among them, but you might find it easiest just to set 
> everything each time even if you are using only one pdf() device.
>

I did call dev.off(), I just forgot to copy it in the code snippet :)
My problem was that I edited par()$oma and not par()$mar. oma defaults 
to c(0,0,0,0) so I couldn't shrink the margin with that command.
Does it make a difference if I use the par() command before or after the 
pdf()-call to create the pdf device?
Thanks for your help!
  -- Alex


-- 
alexx at alexx-fett:~$ vi .emacs



More information about the R-help mailing list