[R] How to sort a grouped barchart?

David Winsemius dwinsemius at comcast.net
Fri May 7 15:05:02 CEST 2010

On May 6, 2010, at 9:01 PM, LeandroTV wrote:

> Hi,
> I have a barchart very similar to the example on the function  
> documetation,
> however, I want to sort the bars according one group in one panel.
> Reminding:
> library(lattice)
> barchart(yield ~ variety | site, data = barley,
>         groups = year, layout = c(1,6),
>         ylab = "Barley Yield (bushels/acre)", auto.key=list(),
>         scales = list(x = list(abbreviate = TRUE,
>                       minlength = 5)))
> I want to sort the yield value, in "waseca" site (e.g.), according  
> the group
> of 1931. How can I do this???

You can reverse the year factor variable levels before plotting:

barley$year.r <- factor(barley$year, levels=rev(levels(barley$year))  )

... and then use the reversed factor. I don't think it would be fair  
to the reader to reverse the positions in just one panel. You did not  
say so but I suspect that you wanted to ask something along the lines  
     sort the plotting order of the "variety" by the yield of the  
variety in one of the years, perhaps 1931?

> ml
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT

More information about the R-help mailing list