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. 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. I'd appreciate any help. Thanks in advance! ~Josh _________________________________________________________________ Refresh_family_safety_052008
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
> 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.You might also want to have a look at: @article{heer:2006, Title = {Multi-scale banking to 45 degrees}, Author = {Heer, Jeffrey and Agrawala, Maneesh}, Journal = {IEEE Transactions on Visualization and Computer Graphics}, Number = {5}, Url = {http://vis.berkeley.edu/papers/banking/}, Volume = {12}, Year = {2006} } It's a rather nice extension. Hadley -- http://had.co.nz/