Hi I'm using R 2.0 in SuSE 9.2. 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? Thanks in advance Paul
From: Paul JH Drake <p.drake at beatson.gla.ac.uk>> > 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)
On Fri, 24 Dec 2004, Paul JH Drake wrote:> I'm using R 2.0 in SuSE 9.2.There is no such version, BTW: please see the posting guide for hints on supplying the sort of information we need (and an example would have helped a lot here).> 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.I'm guessing you used the formula interface to boxplot(): if so they appear in the order of the levels of the factor. Otherwise they appear in the order the groups are supplied to boxplot().> 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?No, as it is not turned on!> How should I address this sensibly?I need to be guessing, again! Create your group as a factor with the levels in the order you want. You don't tell us how you created it, but see ?factor. In particular, if you did not supply a factor but something which was coerced to a factor, supply a factor. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
> From: <Ted.Harding at nessie.mcc.ac.uk> > > On 24-Dec-04 Gabor Grothendieck wrote: > > > > From: Paul JH Drake <p.drake at beatson.gla.ac.uk> > >> > >> 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")])
> page took 6.48 seconds home | my page | my email > . > > > > > > email > > > > > Mail Addresses Calendar Notepad ggrothendieck at myway.com sign out > << Hide Folders Check Messages Compose Message POP Accounts | Mail Preferences | Help > > > Folders > Inbox > Drafts > Sent > Trash (Empty) > Bulk Mail (Empty) > > > > My Folders edit > R > Rcom > Rtmp > Saved > this > Tx > wcd > zoo > > > > Spam Tools info > Spam Filter Level: > OffLowMediumMedium-highHigh > My Block List > Image Filter > Custom Filters > > > > > > > Now Live: > > 125MB Free Storage Upgrade > > > > > Send/Receive 10MB emails! > > > > > < Prev Next > Back to Inbox Print View Full Header > > As AttachmentAs Inline Text Move to Folder----- Folders ------InboxDraftsSentTrashBulk Mail---- My Folders ----RRcomRtmpSavedthisTxwcdzoo > > > > Message is not flagged. [ Flag for Follow Up ] > > From: Gabor Grothendieck <ggrothendieck at myway.com> > > > From: <Ted.Harding at nessie.mcc.ac.uk> > > > > On 24-Dec-04 Gabor Grothendieck wrote: > > > > > > From: Paul JH Drake <p.drake at beatson.gla.ac.uk> > > >> > > >> 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))) boxplot(Xu ~ g)
[sorry. I had some email problems on my last one. here it is again.] From: Gabor Grothendieck <ggrothendieck at myway.com>> > > From: <Ted.Harding at nessie.mcc.ac.uk> > > > > On 24-Dec-04 Gabor Grothendieck wrote: > > > > > > From: Paul JH Drake <p.drake at beatson.gla.ac.uk> > > >> > > >> 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)
From: Gabor Grothendieck <ggrothendieck at myway.com>> > [sorry. I had some email problems on my last one. here it > is again.] > > From: Gabor Grothendieck <ggrothendieck at myway.com> > > > > > From: <Ted.Harding at nessie.mcc.ac.uk> > > > > > > On 24-Dec-04 Gabor Grothendieck wrote: > > > > > > > > From: Paul JH Drake <p.drake at beatson.gla.ac.uk> > > > >> > > > >> 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))