[R] Question about banking to 45 degrees.

Deepayan Sarkar deepayan.sarkar at gmail.com
Tue May 20 23:59:27 CEST 2008


On 5/20/08, Charilaos Skiadas <cskiadas at gmail.com> wrote:

>  Here is how I see it. Let me define a "visual y-unit" as the height of a
> unit of data in the y-direction, and similarly for a visual x-unit.
>  Then the aspect ratio is the quotient of the visual y-unit over the visual
> x-unit. So the aspect ratio is the number of visual x-units that have the
> same length as one visual y-unit.

[Not that it matters, but it is not clear what you mean here. Let's
say we have a 100cm x 100cm plot, with data ranges xlim=c(0, 100) and
ylim=c(0, 200). Then, the aspect ratio is 1, your "visual y-unit" is
0.5cm, and "visual x-unit" is 1cm (so their ratio is 0.5).]

>  If a line has real (data) slope r, and the aspect ratio is b, then the line
> appears with slope rb.

Agreed.

>  Now, there are two things one can compute (for simplicity I assume all
> slopes are positive, insert absolute values as necessary):
>  1. The value of the aspect ratio, that makes the median of the visual
> slopes be 1. This would be obtained by requiring the median of all the rb to
> be 1, which means that the aspect ratio would be 1/median(slopes).
>  2. The median of the aspect ratios, that make each individual line have
> slope 1. So for each line with slope r, we consider the aspect ratio 1/r,
> and then take the median of that. So this would be median(1/slopes).
>
>  Now, unless I am missing something, the banking function computes the
> second one of these, while I think the documentation (and my intuition) say
> that we want the first of these. In the case where there is an odd number of
> data, they would agree, but otherwise one is related to the arithmetic mean
> of the two middle observations, while the other is referring to the harmonic
> mean of the two observations. Those will likely be close to each other in
> most cases, so perhaps this is a moot point in practice, but am I wrong in
> thinking that 1/median(abs(dy[id]/dx[id])) would be the right thing to have
> in the code to the banking function?

I agree with your analysis, but would claim that both calculations are
"right", since the median of 2 numbers is formally any number in
between. I think it is unlikely that the difference in calculations
leads to any difference in the perceptual benefits.

Of course, the current calculation has the advantage of doing one less
division! :-)

-Deepayan



More information about the R-help mailing list