[R] Question about banking to 45 degrees.

Deepayan Sarkar deepayan.sarkar at gmail.com
Tue May 20 20:34:12 CEST 2008


On 5/20/08, Joshua Hertlein <jhertlein at hotmail.com> wrote:
>
>  Hello,
>
>   I am very interested in "banking to 45 degrees" as defined by William S. Cleveland
> in "Visualizing Data."  I like to do it in R as well as Excel, etc.  With R I have come
> across the following method:
>
>  xyplot(x, y, aspect="xy")       (part of "lattice" package)
>
>  which will bank my graph to 45 degrees.  My question is how do I obtain the
> aspect ratio that banks this graph to 45 degrees?  I understand that R does it
> for me, but I would like to explicitly know the aspect ratio so that I can configure
> other graphs in Excel or other software.


> foo <- xyplot(sunspot.year ~ 1700:1988, type = "l", aspect = "xy")
> foo$aspect.ratio
[1] 0.04554598


>  aspect ratio = v / h    (v is vertical distance of plot, h is horizontal distance of plot.
> NOT in the data units, but true, actual distance).
>
>  I've also come across "banking ()", but I don't understand it, nor the significance
> of the value it returns.  Regardless, it doesn't seem to be the aspect ratio that
> I am looking for.

banking(dx, dy) basically gives you the median of abs(dy/dx). The idea
is that dx and dy define the slopes of the segments you want to bank
(so typically, dx = diff(x) and dy = diff(y) if x and y are the data
you want to plot). banking() gives you a single (summary) slope; you
then choose the aspect ratio of your plot so that this slope (in the
data coordinates) has a physical slope of 1. To do this, you solve an
equation involving the data range in the x- and y-axes of your plot.

-Deepayan



More information about the R-help mailing list