Re: [R] Getting default aspect ratio from lattice

From: Deepayan Sarkar <deepayan.sarkar_at_gmail.com>
Date: Tue, 15 May 2007 16:52:58 -0700

On 5/15/07, Waichler, Scott R <Scott.Waichler_at_pnl.gov> wrote:
> > > How can I get the value of the aspect ratio that is used in
> > a lattice
> > > plot? In a levelplot for instance, the native units per cm of my x
> > > and y axes are different, and I need to know the aspect
> > ratio so that
> > > I can correctly plot vectors. I know how to set the aspect in a
> > > high-level lattice function but I can't quite figure out how to get
> > > it. I would like call to levelplot() without printing
> > anything, get
> > > the aspect ratio, use it to create my vector arrows, then call
> > > levelplot() again with print() to create the final figure.
> >
> > Your question doesn't necessarily have a well defined answer,
> > because the aspect ratio may be computed only on printing
> > (and not even then, as the aspect ratio may change after
> > printing if you resize the device). In fact, this is the
> > default behaviour (aspect = "fill").
>
> Thanks for the help, Deepayan. Yes, I guess what I am looking for is
> the actual numerical value for aspect.ratio that is used when aspect =
> "fill". My device is a pdf and I don't resize it. Could I execute the
> whole plot, including printing it, while saving the aspect.ratio that
> was used, then create the plot again?

Sort of, if you use something like:

getAspect <-

    function(obj)
{

    print(obj)
    trellis.focus("panel", 1, 1, highlight = FALSE)     cpl <- current.panel.limits(unit = "inches")     ans <- diff(cpl$ylim) / diff(cpl$xlim)     trellis.unfocus()
    ans
}

Using this, I get:

> foo <- levelplot(volcano, aspect = "fill")
> x11()
> getAspect(foo)
[1] 1.096661
> dev.off()
> x11("", 5, 9)
> getAspect(foo)

[1] 2.342152
> dev.off()

But if you know the size of your device, you won't do much worse if you supply a numeric aspect based on that (unless you have a multipanel plot and the automatic layout calculation is important to you).

-Deepayan



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 and provide commented, minimal, self-contained, reproducible code. Received on Tue 15 May 2007 - 23:55:45 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 16 May 2007 - 01:31:27 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.