[Rd] boxplot() confuses x- and y-axes (PR#10345)
jarioksa at sun3.oulu.fi
Mon Oct 15 15:42:24 CEST 2007
On Mon, 2007-10-15 at 15:25 +0200, maechler at stat.math.ethz.ch wrote:
> >>>>> "ms" == marc schwartz <marc_schwartz at comcast.net>
> >>>>> on Mon, 15 Oct 2007 14:20:16 +0200 (CEST) writes:
> ms> On Mon, 2007-10-15 at 10:30 +0200, bob.ohara at helsinki.fi wrote:
> >> Full_Name: Bob O'Hara
> >> Version: 2.6.0
> >> OS: Windows XP
> >> Submission from: (NULL) (18.104.22.168)
> >> Using horizontal=TRUE with boxplot() confuses it as to what is an x- or y-axis.
> >> At least, xlim= and ylim= are the wrong way round, log="x" (or "y") and xaxt=
> >> work as expected, I haven't looked at anything else.
> >> Some code to see if you can reproduce the bug (or discover it's in my head...):
> >> boxplot(count ~ spray, data = InsectSprays)
> >> # Try to change x-axis:
> >> boxplot(count ~ spray, data = InsectSprays, xlim=c(0,50))
> >> # Plot horizontally:
> >> boxplot(count ~ spray, data = InsectSprays, horizontal=TRUE)
> >> # Now try to change x-axis:
> >> boxplot(count ~ spray, data = InsectSprays, horizontal=TRUE, xlim=c(0,50))
> >> # Changes y-axis!
> >> # Now try to change y-axis:
> >> boxplot(count ~ spray, data = InsectSprays, horizontal=TRUE, ylim=c(0,50))
> >> # Changes x-axis!
> >> # Plot x-axis on log scale:
> >> boxplot(count+1 ~ spray, data = InsectSprays, horizontal=TRUE, log="x")
> >> # Does indeed change x-axis
> >> # Don't add ticks on x-axis:
> >> boxplot(count ~ spray, data = InsectSprays, horizontal=TRUE, xaxt="n")
> >> # Works as expected.
> ms> Hi Bob,
> ms> No, it's not in your head. This is documented in ?bxp, which is the
> ms> function that actually does the plotting for boxplot(). See the
> ms> description of 'pars' in ?bxp:
> ms> "Currently, yaxs and ylim are used â€˜along the boxplotâ€™, i.e.,
> ms> vertically, when horizontal is false, and xlim horizontally."
> ms> So essentially, the named 'x' and 'y' axes are rotated 90 degrees when
> ms> you use 'horizontal = TRUE', rather than the vertical axis always being
> ms> 'y' and the horizontal axis always being 'x'. This has been discussed on
> ms> the lists previously.
> Yes; thank you, Marc.
> And the reason for this is very sensible I think:
> If you have a longish boxplot() or bxp() command,
> and you just want to go from vertical to horizontal or vice
> versa, it makes most sense just to have to change the
> 'horizontal' flag and not having to see if there are other 'x*'
> and or 'y*' arguments that all need to be changed as well.
Except that you must change xaxt/yaxt and log="x"/log="y" which do not
follow the "along the box" logic, and behave differently than
Nothing of this is fatal, but this probably needs more than one
iteration to find which way each of the x* and y* arguments works.
cheers, jari oksanen
More information about the R-devel