[R] displaying sample size in boxplots

Patrick Drechsler patrick.drechsler at gmx.net
Wed Sep 29 19:47:26 CEST 2004


Martin Maechler wrote on 29 Sep 2004 17:11:13 MET:

>>>>>> "Roger" == Roger Bivand <Roger.Bivand at nhh.no>
>>>>>>     on Wed, 29 Sep 2004 15:09:17 +0200 (CEST) writes:
[snip]

>     Roger> Perhaps use the names= argument (width can help too):
>                                             ^^^^^^^^^^^^^^^^^^
> Indeed!
> And that's why -- "in the good ol' times" when the box plot was invented
> and enhanced, the inventors thought about it.
> For that reason there's the  'varwidth = TRUE/FALSE' argument
> in boxplot() 
>
> Note from help(boxplot) however that the inventors thought
> it wiser to make the width proportional to the SQRT of the
> sample size rather than the sample.size itself, i.e.,
> 'varwidth = TRUE' and your proposal are not equivalent.
>
>     >> boxplot(expend~stature, width=sample.size/length(expend), 
>     >>   + names=paste(levels(stature), ", N=", sample.size, sep=""))
>
> Here are the current proposals [for cut & paste]:
>
> library(ISwR)
> data(energy)
> attach(energy)
>
> ## 1
> boxplot(expend~stature)
> sample.size <- tapply(expend, stature, length)
> ss.ch <- paste("N=", sample.size, sep="")
> mtext(ss.ch, at=1:length(unique(stature)), line=2, side=1)
>
> ## 2 (Roger)
> boxplot(expend~stature, width=sample.size/length(expend),
>         names=paste(levels(stature), ", N=", sample.size, sep=""))
>
> ## 3 (Roger + Martin):
> boxplot(expend ~ stature, varwidth= TRUE,
>         names=paste(levels(stature), ", N=", sample.size, sep=""))

Thanks for the explanation and the nice summary Martin! I can see
the point you're making about varwidth. I've read that part in
the documentation before but I have to admit that up to now I
didn't see the purpose of this parameter. Although there are
situations were I prefer to see the number in print somewhere on
the plot which I can now easily accomplish with `names'.

Also thanks to Stephano for the pointer to the r-newsletter
article and to Don for showing me how one implements user
defined functions!

Cheers

Patrick
-- 
For animals, the entire universe has been neatly divided into things
to (a) mate with, (b) eat, (c) run away from, and (d) rocks.
        -- (Terry Pratchett, Equal Rites)




More information about the R-help mailing list