From:   Gabor Grothendieck <[EMAIL PROTECTED]>
> 
> [sorry. I had some email problems on my last one. here it
> is again.]
> 
> From: Gabor Grothendieck <[EMAIL PROTECTED]>
> > 
> > > From: <[EMAIL PROTECTED]>
> > > 
> > > On 24-Dec-04 Gabor Grothendieck wrote:
> > > > 
> > > > From: Paul JH Drake <[EMAIL PROTECTED]>
> > > >> 
> > > >> When I plot data as a boxplot, the boxes appear on the plot in
> > > >> alphabetical order (of group) rather than the order in which they
> > > >> appear
> > > >> in the data. So far, the only thing I can do to fix this is to prefix
> > > >> the group labels with a,b,c...etc to trick R into plotting them in the
> > > >> right order.
> > > >> 
> > > >> Can sorting be turned off?
> > > >> How should I address this sensibly?
> > > > 
> > > > Actually they are shown in order of the levels of the factor.
> > > > e.g. to show them in reverse order:
> > > > 
> > > > attach(InsectSprays)
> > > > spray <- factor( as.character(spray), level = rev(levels(spray)) )
> > > > boxplot(count ~ spray)
> > > 
> > > Applying boxplot to data constructed as follows:
> > > 
> > > X<-list(C=rnorm(10),B=rnorm(20),A=rnorm(30))
> > > boxplot(X)
> > > 
> > > gives the plots in the order "C", "B", "A", so here they indeed
> > > come out in the order of the data.
> > > 
> > > But suppose I had wanted them in the order "B", "A", "C", say.
> > > How would Gabor's suggestion (or similar) be applied to this case?
> > 
> > boxplot(X[c("B","C","A")])
> > 
> 
> It occurred to me that maybe your question was not how to reorder
> them if they are in list form but how to convert the list form
> to the formula form. If that was it then:
> 
> Xu <- unlist(X)
> g <- factor(rep(names(X), sapply(X, length))) # add levels= arg to reorder
> boxplot(Xu ~ g)

or even shorter:

boxplot(values ~ ind, stack(X))

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to