[R] How to get correct proportions/bounding box for latex figure?

Duncan Murdoch murdoch at stats.uwo.ca
Wed Mar 15 03:54:02 CET 2006

On 3/14/2006 9:29 PM, context grey wrote:
> Thank you.   However I don't think I understand the
> response here.
> In what sense do I "want a nonstandard layout"?  

You said you want something that is wide and short (3 squares, side by 
side).  The standard layout would fit on a normal piece of paper, or a 
default window on screen.

The R graphics model is that the drawing surface is established first, 
then the things you draw are adjusted to fit in it.  R won't change the 
shape of the display because you are drawing more things on it.

I don't think I understand exactly what you want to achieve; sample code 
that produces something close would be helpful (even if it comes out the 
wrong shape).

Duncan Murdoch
> Is because I am specify aspect=1/1 in the xyplot() ?  
> If so, then is there some other way to cause the
> scatterplot
> to be rougly square?  I took this out and looked at
> the result again.
> Rougly estimating, the aspect ratio of each
> scatterplot is about 7:1.
> When a normal distribution is stretched to this extent
> it looks like
> a linear trend.   Very hard to read.
> Alternately, my nonstandard layout may be the
> specfication of 
> width/height in the trellis.device() call?   But
> without both of these
> R gives the error mentioned in my original post.  
> (And this
> is the most puzzling point to me - I really
> don't understand why both of these are required --
> specifying one of them would serve usefully to scale
> the plot
> without changing its aspect ratio, and R should be
> able to figure
> out the aspect ratio since it is drawing the plot.)
> The issue is not with Latex.  I'm using
> graphicx/includegraphics, which
> does not stretch figures unless requested.  I also
> verified this
> by opening the .eps in another program; it looks the
> same as in latex.
> Latex is correctly reading the bounding box, but the
> bounding box
> is quite wrong.
> (May need to clarify here, there are two situations:  
> 1)  aspect=1/1 is not specified in the xyplot() call. 
> Then the scatter
>     plots come out hugely stretched.  The bounding box
> may be correct.
> 2)  specify aspect=1/1.  Now the scatterplots are sort
> of correct,
> provided I can either guess what width/height should
> be in trellis.device(), or else omit the
> paper=special.  But the bounding
> box is quite wrong, it is roughly square, whereas the
> figure itself
> should be roughly 3:1 for 3 square scatterplots).
> Again, I think the problem is that I'm just
> overlooking something basic, but cannot figure out
> what it is.
> Here's an idea:  maybe lattice/trellis doesn't handle
> putting several
> plots into a single figure (and same .eps file), i.e.
> it should have 
> separate device/plot/dev.off() calls for each figure? 
>  And then 
> I'd try to assemble the three into one using latex?
> --- Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>> You say you want a nonstandard layout, then you say
>> you shouldn't have 
>> to tell R what you want.  How else would it know?
>> Regarding the stretching:  that's being done by
>> whatever software is 
>> importing the picture.  Just tell it to preserve the
>> aspect ratio, and 
>> things will be fine.  R writes the bounding box into
>> EPS files, and 
>> reasonable software should be able to read it from
>> there.
>> Duncan Murdoch
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

More information about the R-help mailing list