hierobarp or barNest from {plotrix} may do this more neatly. 2010/10/31 Sibylle Stöckli <sibylle.stoec...@gmx.ch>
> Dear R users > > > I would like to group my barplot graph (see example on the R help > link). The proposed R code, adding individual bars to the plot, looks > really overwhelming. My specific dataset just consists of five groups > and three different levels within each groups (the individual bars). > The .txt file is read as matrix (horizontal: group, vertical: levels). > > The R trellis barchart (function group="") is an easy function, but > unfortunately the upper plot part look much different from other > graphs. I would therefore prefer barplot to stansdardize my plots > within the manuscript. > > It would be very helpful for me to know if anyone else has worked on > the barplot group function. > > Thanks > Sibylle > > > > http://onertipaday.blogspot.com/2007/05/make-many-barplot-into-one-plot.html > > R code from the link > ## I have 4 tables like this:satu <- array(c(5,15,20,68,29,54,84,119), > dim=c(2,4), dimnames=list(c("Negative", "Positive"), c("Black", > "Brown", "Red", "Blond")))dua <- array(c(50,105,30,8,29,25,84,9), > dim=c(2,4), dimnames=list(c("Negative", "Positive"), c("Black", > "Brown", "Red", "Blond")))tiga <- array(c(9,16,26,68,12,4,84,12), > dim=c(2,4), dimnames=list(c("Negative", "Positive"), c("Black", > "Brown", "Red", "Blond")))empat <- array(c(25,13,50,78,19,34,84,101), > dim=c(2,4), dimnames=list(c("Negative", "Positive"), c("Black", > "Brown", "Red", "Blond")))# rbind() the tables togetherTAB <- > rbind(satu, dua, tiga, empat)# Do the barplot and save the bar > midpointsmp <- barplot(TAB, beside = TRUE, axisnames = FALSE)# Add the > individual bar labelsmtext(1, at = mp, text = c("N", "P"),line = 0, > cex = 0.5)# Get the midpoints of each sequential pair of bars# within > each of the four groupsat <- t(sapply(seq(1, nrow(TAB), by = > 2),function(x) colMeans(mp[c(x, x+1), ])))# Add the group labels ! > for each pairmtext(1, at = at, text = rep(c("satu", "dua", "tiga", > "empat"), 4),line = 1, cex = 0.75)# Add the color labels for each > groupmtext(1, at = colMeans(mp), text = c("Black", "Brown", "Red", > "Blond"), line = 2) > [[alternative HTML version deleted]] > > ______________________________________________ > 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. > [[alternative HTML version deleted]]
______________________________________________ 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.