On Jul 29, 2011, at 8:05 AM, Petr PIKAL wrote:

Hi


Dear All

I would like to produce interaction boxplots and this seems to work:

par(mfrow=c(2,2))
A=sample(rnorm(50,50,10))
B=sample(rnorm(50,100,10))
Test=merge(A,B,by=0)#by=0 where 0 is the row.names
TreatA=(gl(2,50,100,labels=c("High","Low")))
TreatB=rep(gl(2,25,50,labels=c("High","Low")),2)
Newdata=data.frame(TreatA,TreatB,Test)

bwplot(x~TreatA:TreatB,data=Newdata)

However, I would prefer the X axis labels to be different, such that
there
are two label rows (TreatA and TreatB) something like this:

TreatA    High     High    Low       Low
TreatB    High     Low     High      Low

any guidance on achieving this much appreciated.

Combination of axes=FALSE

boxplot(x~TreatA:TreatB,data=Newdata, axes=F)

and following axis and mtext commands seems to do what you want
axis(2)
axis(1, at= 1:4,labels=c("H", "H", "L", "L"))

I didn't seem to get axes=FALSE to work the way I expected (or even find it in boxplot or par documentation... oh, there it is in plot.default) so also tried xaxt="n" and also tried to get the "over/ under" arrangement of the labels and "Treat"'s as specified:

boxplot(x~TreatA:TreatB,data=Newdata, xaxt="n")
axis(1, at= 1:4,labels=c("Treat A:High\nTreat B:High", "High\nLow", "Low\nHigh", "Low\nLow"), padj=1 )

---End of answer---


<whine-mode on>
Now I have a question: If axes=FALSE is going to also suppress the drawing of the box, shouldn't that be documented in the help page of plot.default so that if someone (eventually) finds the right help page they can develop the correct expectation? Yes, I can see that frame.plot=axes is the default argument, but should we give the useR a break and mention that in the Details?

And shouldn't the boxplot help page say that plot.default is eventually called and give a link to it so that the available graphical parameters are made known to the useR? Well, now that I follow the ?bxp link I see that 'axes' is mentioned, but one is further referred to ?plot.window which says _nothing_ about 'axes'. But then in the code for bxp() I see that plot.default is not called and that 'axes' are handled inside that function and nothing is passed off to either plot.window or plot.default. <whine-mode off>

--

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to