On Thu, Apr 1, 2010 at 4:10 AM, Luigi Ponti <lpo...@inbox.com> wrote: > Hello, > > I am trying to give different colors to boxes in a violin plot obtained via > bwplot from lattice package using a color palette from RColorBrewer: > >> require(RColorBrewer) >> MyPalette <- brewer.pal(6, "Set3") > > A call to: > >> boxplot(count ~ spray, data = InsectSprays, col = MyPalette) > > yields the example boxplot with each box colored according to the different > colors from MyPalette. In addition, boxes are colored with the same color > order of MyPalette. See > >> display.brewer.pal(6, "Set3") > > However, when I do the same thing with a violin plot from the lattice > package >> require(lattice) >> bwplot(count ~ spray, data = InsectSprays, > + panel = function(..., box.ratio) { > + panel.violin(..., col = "transparent", > + varwidth = FALSE, box.ratio = box.ratio) > + panel.bwplot(..., fill = MyPalette, box.ratio = .1) > + } ) > > boxplots are colored with the right colors (each box has a different color) > but with a different color order -- too bad because I would like to color > code the plot according to certain pre-defined colors. Same thing (wrong > color order) with a simple bwplot: > >> bwplot(count ~ spray, data = InsectSprays, fill = MyPalette) > > Is there a way to get the right color (i.e. same order as in MyPalette) in > bwplot/panel.violin?
The correct approach would be along the lines of bwplot(count ~ spray, data = InsectSprays, groups = spray, panel = panel.superpose, panel.groups = panel.violin, col = MyPalette) (unlike panel.xyplot etc., panel.bwplot does not explicitly handle grouping). -Deepayan ______________________________________________ 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.