On Tue, Jan 20, 2009 at 4:28 AM, Daniel Brewer <daniel.bre...@icr.ac.uk> wrote: > Hi, > > I have a particular barplot I would like to generate, but I am having > trouble getting it to work. What I would like is in effect two barplots > with stacked bars merged into one. For example, I have two samples > (yoda1,yoda2) on which I measure whether two variables (var1,var2) are > present or absent for a number of measurements on that sample. > >> var1 <- data.frame(yoda1=c(3,7), yoda2=c(1,9)) >> var2 <- data.frame(yoda1=c(8,2), yoda2=c(5,5))
I'd start by storing your data in a single data frame, with all information explicit: var1$row <- 1:2 var1$var <- "one" var2$row <- 1:2 var2$var <- "two" vars <- rbind(var1, var2) library(reshape) df <- melt(vars, id = c("var", "row")) names(df)[3] <- "yoda" df (In reality you'd give the variables informative names based on your study design) Then you're in a position to better describe and control what you want. With the data in this form, you could then use the ggplot2 package to display it: library(ggplot2) qplot(yoda, value, data = df, fill = factor(row), geom="bar", stat = "identity", facets = ~ var) This puts yoda on the x axis, colours the bars by the row and separates the plot into two panels based on var. It's trivial to produce any other arrangement of the three variables. qplot(var, value, data = df, fill = factor(row), geom="bar", stat = "identity", facets = ~ yoda) qplot(row, value, data = df, fill = yoda, geom="bar", stat = "identity", facets = ~ var) etc Hadley -- http://had.co.nz/ ______________________________________________ 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.