One option is to use lattice package:
library(lattice)
newVar <- cbind(stack(rbind(var1, var2)), Var = rep(c("var1", "var2"),
each = 2))
barchart(values ~ ind, groups = Var, data = newVar)
On Tue, Jan 20, 2009 at 9:03 AM, Daniel Brewer <daniel.brewer at icr.ac.uk
<mailto:daniel.brewer at icr.ac.uk>> wrote:
Thanks.
That is definitely in the right direction, but firstly I would like
yoda1:var1 next to yoda1:var2, not as currently yoda1:var1, yoda2:var1,
yoda1:var2, yoda2:var2. Additionally, I would like the gap between
samples to be greater than the gap between variables.
Many thanks
Dan
Henrique Dallazuanna wrote:
> Try this:
>
> barplot(cbind(as.matrix(var1), as.matrix(var2)), names.arg =
>
> On Tue, Jan 20, 2009 at 8:28 AM, Daniel Brewer
<daniel.brewer at icr.ac.uk <mailto:daniel.brewer at icr.ac.uk>
> <mailto:daniel.brewer at icr.ac.uk <mailto:daniel.brewer at icr.ac.uk>>>
>
> Hi,
>
> I have a particular barplot I would like to generate, but I am
> trouble getting it to work. What I would like is in effect
> with stacked bars merged into one. For example, I have two
> (yoda1,yoda2) on which I measure whether two variables
> 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))
>
> For each variable I can plot a barplot
>
> > barplot(as.matrix(var1))
> > barplot(as.matrix(var2))
>
> I would like to join these together, so that for each sample
> two stacked bars next to each other, one for var1 and the
> var2. I was thinking something like:
>
> > barplot(list(as.matrix(var1),as.matrix(var2)))
>
> would work, but it didn't.
>
> Any suggestions you could make would be great.
>
> Dan