hi Pablo set.seed(1) # for reproducibility of data.frame mydata <- rbind(data.frame(Col1 = rnorm(2*1000),Col2 =rep(c("A", "C"), each=1000),Col3=factor(rep(c("YY","NN"), 1000))),data.frame(Col1 = rnorm(1000),Col2 =rep(c("B")),Col3=factor(rep(c("YY","YN"), 500)))) mydata$Col2 <- factor(mydata$Col2)
In future please do not put * at end makes it harder to copy red=rgb(249/255, 21/255, 47/255) amber=rgb(255/255, 200/255,0/255) # amended to reveal a colour difference green=rgb(39/255, 232/255, 51/255) # As Deepayan Sarkar said bwplot is different to others bwplot(mydata$Col1~mydata$Col3 | mydata$Col2,data=mydata, groups = Col3, as.table = TRUE, # added to make it easier for factor levels layout = c(3,1), # looks nicer and easier to read panel = panel.superpose, panel.groups = panel.bwplot, fill = c(red,amber,green) ) Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mac...@northnet.com.au -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Pablo Fleurquin Sent: Thursday, 23 April 2015 02:03 To: r-help@r-project.org Subject: [R] R lattice bwplot: Fill boxplots with specific color depending on factor level Hi, I thoroughly looked for an answer to this problem with no luck. I have a dataframe with 3 factor levels: YY, NN, YN *>mydata <- rbind(data.frame(Col1 = rnorm(2*1000),Col2 =rep(c("A", "C"), each=1000),Col3=factor(rep(c("YY","NN"), 1000))),data.frame(Col1 = rnorm(1000),Col2 =rep(c("B")),Col3=factor(rep(c("YY","YN"), 500))))* Being Col3 of factor type with 3 levels: NN YY YN I want to make a boxplot using lattice bwplot and assign to each level a specific color: *# NN:>red=rgb(249/255, 21/255, 47/255)# YN:>amber=rgb(255/255, 126/255, 0/255)# YY:>green=rgb(39/255, 232/255, 51/255)* Using bwplot function: * >pl<-bwplot(mydata$Col1~mydata$Col3 | mydata$Col2,data=mydata,ylab=expression(italic(R)),panel=function(...){panel .bwplot(...,groups=mydata$Col3, fill=c(red,amber,green))})* IF YOU REPRODUCE THE EXAMPLE YOU WILL SEE THAT THE COLORS ARE NOT RELATED TO THE LEVELS IN MY DATAFRAME AS YY BOX IS NOT ALWAYS GREEN. IS THERE A WAY TO ASSIGN YY:green, NN:red, YN:amber? You can see the resulting figure in: http://stackoverflow.com/questions/29802129/r-lattice-bwplot-fill-boxplots-w ith-specific-color-depending-on-factor-level Thank you in advance! Pablo [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.