[R] Multifactor boxplots
Dennis Murphy
djmuser at gmail.com
Fri Jul 29 15:23:51 CEST 2011
Hi:
Here are a couple of attempts, one with base graphics and one with lattice.
d <- data.frame(TreatA = gl(2, 50, 100, labels = c('High', 'Low')),
TreatB = rep(gl(2, 25, 50, labels = c('High', 'Low')), 2),
Test = c(rnorm(50, 50, 10), rnorm(50, 100, 10)))
lbl <- c('High\nHigh', 'High\nLow', 'Low\nHigh', 'Low\nLow')
# Lattice version:
library('lattice')
bwplot(Test ~ interaction(TreatA, TreatB), data = d,
scales = list(x = list(at = 1:4, label = lbl)))
trellis.focus('toplevel')
panel.text(0.08, 0.065, 'Treat A:\nTreat B:', cex = 0.75)
trellis.unfocus()
boxplot(Test ~ interaction(TreatA, TreatB), data = d, xaxt = 'n')
axis(1, at = 1:4, lab = lbl)
mtext('Treat A:\nTreat B:', side = 1, line = 1, at = 0)
You can adjust the position and size of the text to your taste. The
idea for the lattice plot comes from the following post in the list
archives:
http://r-project.markmail.org/search/?q=panel.text#query:panel.text+page:4+mid:2e3xpb2tsufntwya+state:results
HTH,
Dennis
On Fri, Jul 29, 2011 at 4:53 AM, Tom Wilding <Tom.Wilding at sams.ac.uk> wrote:
> 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.
>
> Regards
>
> Tom
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list