[R] Sweave figure aspect ratio

Werner Wernersen pensterfuzzer at yahoo.de
Sun Sep 9 22:14:17 CEST 2007


Many thanks for the quick reply, Duncan.

Now I see that something is going wrong in R already.
I overlooked this because the R window was so big. I
have to persuade plotViewport() not to create a square
area but one which takes the different margins into
account.

Best regards,
  Werner

--- Duncan Murdoch <murdoch at stats.uwo.ca> schrieb:

> On 09/09/2007 7:24 AM, Werner Wernersen wrote:
> > Hello,
> > 
> > using Sweave, is there any option to preserve the
> > original aspect ratio of plots generated from R
> code?
> > 
> > Consider this Sweave chunk:
> > <<test,echo=F,fig=T,width=2,height=2>>=
> > x <- 1:10
> > y <- sin(x)
> > par(mar=c(4,4,0,4))
> > plot(x,y,
> >      xlab="x label",
> >      ylab="y label"
> >      )
> > @
> > 
> > In Latex, I want to produce a plot of width 2 but
> > don't care about the height. If I put the width
> and
> > height like shown on the example, the box isn't
> square
> > any more. But if I put only width or height in the
> > Sweave option, then the values then the appearance
> is
> > totally off. 
> > 
> > Is there any option for Sweave or other
> possibility to
> > preserve the ratio of the sides of plots?
> 
> The width and height args in the header of the chunk
> are passed to the 
> graphics device (postscript or pdf), but they don't
> appear in the LaTeX 
> output.  To modify the appearance in LaTeX, you need
> to set a graphicx 
> package parameter, e.g. something like
> 
> \setkeys{Gin}{width=2in}
> <<test,echo=F,fig=T>>=
> x <- 1:10
> y <- sin(x)
> par(mar=c(4,4,0,4))
> plot(x,y,
>       xlab="x label",
>       ylab="y label"
>       )
> @
> 
> If you only specify width, then the aspect ratio
> will be maintained.
> 
> The \setkeys{} changes are persistent; as far as I
> know there's no way 
> to say "go back to the default" afterwards.  So what
> I'd suggest is to 
> define a macro (e.g. \Gwidth) to give the default
> width, and then call
> 
> \setkeys{Gin}{width=\Gwidth}
> 
> at the start of your document and after any change
> like the one above.
> 
> Duncan Murdoch
>



More information about the R-help mailing list