[R] boxplot in subgroups
Pooja Jain
pcxpj1 at nottingham.ac.uk
Thu Mar 26 19:16:54 CET 2009
Thank you very much Annette,
With your help I can do exactly what I wanted to.
Best wishes,
-Pooja
On 26 Mar 2009, at 06:59, Annette Heisswolf wrote:
> Hei,
>
> the error message below just tells you that you have specified nine
> places along the axis where you want to have labels (i.e. at=1:9)
> but obviously you have only specified three labels (i.e. labels =
> c("C","M","S")). Thus, R is complaining that there are not enough
> labels for all positions. However, I guess from your description
> that you want to have only three labels below your plot, one for
> each group of three boxes that share the same ASA1 value. Thus, you
> could for example do like this:
>
> axis(side=1,at=c(2,5,8),labels=c("C","S","M"))
>
> Then you would get the label always below the middle one of the
> three boxes of each group.
>
> Now the boxes are, however, still distributed evenly across the
> plot, but in case you want to have those that belong to the same
> subgroup a bit closer together, you can specify their position via
> the "at" option on the boxplot function (see ?boxplot).
>
> An example with random data might look like this:
>
> ASA1=factor(rep(c("C","S","M"),each=100))
> ASA2=factor(rep(c("C","S","M"),100))
> C1_C2=runif(300)
> boxplot(C1_C2~ASA2*ASA1,xlim=c(0,12),at=c(1:3,5:7,9:11),xaxt="n")
> axis(side=1,at=c(2,6,10),labels=c("C","S","M"))
>
> See ?axis for further options, e.g. tcl=0 in case you don't want to
> have a tick at the axis at the position of the label.
>
> Hope that helps,
>
> Annette
>
> Pooja Jain schrieb:
>> Hi,
>> I have data that looks like this:
>> ASA1 ASA2 C1_C2
>> C M 9.0225
>> S S 2.4315
>> M C 3.4894
>> M S 4.5282
>> C M 1.3183
>> C S 1.3735
>> S C 1.0488
>> S M 7.948
>> M C 4.5827
>> I need to plot Boxplots for a given ASA1 (either C,S, or M) with
>> respect to C1_C2. However, instead of one boxplot I want to plot
>> three boxplots for a given ASA1 value such that each sub-boxplot
>> represent the distribution for C1-C2 for each of the three possible
>> values of ASA2 (C,S or M). I want to show this subgroup with a
>> single xtics (either C, S or M) corresponding to the ASA1 value
>> selected.
>> I tried to do it, but ending with the following error. I am not
>> sure how exactly I should build the object to plot as subgroup.
>> Error in axis(side = 1, at = 1:9, labels = c("C", "M", "S" :
>> 'at' and 'labels' lengths differ, 9 != 3
>> In addition: Warning message:
>> In bxp(list(stats = c(1e-04, 2.82745, 6.0193, 10.5957, 22.2476, :
>> some notches went outside hinges ('box'): maybe set notch=FALSE
>> I would greatly appreciate any help in this matter.
>> Thank you.
>> -Kanu
>
> --
> Annette Heisswolf
> Section of Ecology
> Department of Biology
> University of Turku
> 20014 Turku, Finland
>
> phone + 358 2 333 6006
> fax + 358 2 333 6550
> mail annette.heisswolf at utu.fi
More information about the R-help
mailing list