0

I wanted to arrange bars in each stack by its size, with the largest one at base. Referring to this question, I have to arrange my data

Ordering stacks by size in a ggplot2 stacked bar graph

so I did it with `arrange()' but that didn't work. My bars are still not ordered.

Here is the code

weedseed2 <- weedseed%>%
  select(-ends_with("g"))%>%
  select(-ends_with("d"))%>%
  gather(key=species, value=speciesnumber, ABUTHv:Othersv)%>%
  mutate(species = gsub("v$", "", species))%>%
  arrange(-speciesnumber) 

#speciesmass when species = DIGSAWt is the same as DIGSAWt.
summary(weedseed2[weedseed2$species == "ABUTHv",])
summary(weedseed2$ABUTHv)



weedseed2$density <- weedseed2$speciesnumber*weedseed2$CF

head(weedseed2)


weedseed2 <- ddply(weedseed2, .(Crop, Rot, Rot.Herb, species), summarise,
                      meandensity = sum(density)/4)

ggplot(weedseed2, aes(x=Rot.Herb, y=meandensity, fill=species))+
  geom_bar(stat="identity")+
  theme_bw() +
  theme(panel.grid.major=element_blank()) +
  facet_grid(~Rot, scales = "free_x", space="free_x")+
  #ggtitle("Weed abundance and diversity") +
  #theme(plot.title = element_text(size=24, face="bold", vjust=2)) +
  theme(legend.title=element_blank(), legend.text=element_text(size=20),legend.position="top")+
  xlab("\nTreatment") +
  theme(axis.title = element_text(size=24,face="bold", vjust=2), axis.text.x = element_text(size=20,angle = 90, hjust = 1, vjust=0.4)) +
  ylab("Seedbank density 2014 (seeds per meter sq)\n") +
  ylim(c(0,8000))+
  theme(axis.title = element_text(size=24,face="bold", vjust=2), axis.text.y = element_text(size=20, color="black"))

and here is the data

> dput(weedseed)
structure(list(ID = 1:72, Plot = c(11L, 11L, 12L, 12L, 13L, 13L, 
14L, 14L, 15L, 15L, 16L, 16L, 17L, 17L, 18L, 18L, 19L, 19L, 21L, 
21L, 22L, 22L, 23L, 23L, 24L, 24L, 25L, 25L, 26L, 26L, 27L, 27L, 
28L, 28L, 29L, 29L, 31L, 31L, 32L, 32L, 33L, 33L, 34L, 34L, 35L, 
35L, 36L, 36L, 37L, 37L, 38L, 38L, 39L, 39L, 41L, 41L, 42L, 42L, 
43L, 43L, 44L, 44L, 45L, 45L, 46L, 46L, 47L, 47L, 48L, 48L, 49L, 
49L), Side = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L), .Label = c("E", 
"W"), class = "factor"), Trt = structure(c(3L, 3L, 1L, 1L, 2L, 
2L, 9L, 9L, 5L, 5L, 8L, 8L, 6L, 6L, 4L, 4L, 7L, 7L, 1L, 1L, 6L, 
6L, 3L, 3L, 2L, 2L, 8L, 8L, 5L, 5L, 7L, 7L, 4L, 4L, 9L, 9L, 1L, 
1L, 9L, 9L, 8L, 8L, 2L, 2L, 7L, 7L, 5L, 5L, 4L, 4L, 3L, 3L, 6L, 
6L, 6L, 6L, 8L, 8L, 1L, 1L, 2L, 2L, 7L, 7L, 4L, 4L, 5L, 5L, 3L, 
3L, 9L, 9L), .Label = c("A4", "C2", "C3", "C4", "O3", "O4", "S2", 
"S3", "S4"), class = "factor"), Herb = structure(c(1L, 2L, 1L, 
2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 
1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 
2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 
2L, 2L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 1L, 
2L, 2L, 1L, 2L, 1L), .Label = c("conv", "low"), class = "factor"), 
    Crop = structure(c(2L, 2L, 1L, 1L, 2L, 2L, 4L, 4L, 3L, 3L, 
    4L, 4L, 3L, 3L, 2L, 2L, 4L, 4L, 1L, 1L, 3L, 3L, 2L, 2L, 2L, 
    2L, 4L, 4L, 3L, 3L, 4L, 4L, 2L, 2L, 4L, 4L, 1L, 1L, 4L, 4L, 
    4L, 4L, 2L, 2L, 4L, 4L, 3L, 3L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 
    3L, 4L, 4L, 1L, 1L, 2L, 2L, 4L, 4L, 2L, 2L, 3L, 3L, 2L, 2L, 
    4L, 4L), .Label = c("alfalfa", "corn", "oat", "soybean"), class = "factor"), 
    Rot = structure(c(2L, 2L, 3L, 3L, 1L, 1L, 3L, 3L, 2L, 2L, 
    2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 1L, 
    1L, 2L, 2L, 2L, 2L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 
    3L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 2L, 2L, 2L, 2L, 
    3L, 3L), .Label = c("2-year", "3-year", "4-year"), class = "factor"), 
    Rot.Herb = structure(c(5L, 6L, 1L, 2L, 4L, 3L, 18L, 17L, 
    9L, 10L, 15L, 16L, 12L, 11L, 8L, 7L, 14L, 13L, 2L, 1L, 11L, 
    12L, 5L, 6L, 4L, 3L, 16L, 15L, 9L, 10L, 13L, 14L, 7L, 8L, 
    17L, 18L, 1L, 2L, 18L, 17L, 16L, 15L, 4L, 3L, 14L, 13L, 10L, 
    9L, 8L, 7L, 5L, 6L, 12L, 11L, 12L, 11L, 15L, 16L, 1L, 2L, 
    3L, 4L, 14L, 13L, 8L, 7L, 9L, 10L, 6L, 5L, 18L, 17L), .Label = c("A4-conv", 
    "A4-low", "C2-conv", "C2-low", "C3-conv", "C3-low", "C4-conv", 
    "C4-low", "O3-conv", "O3-low", "O4-conv", "O4-low", "S2-conv", 
    "S2-low", "S3-conv", "S3-low", "S4-conv", "S4-low"), class = "factor"), 
    ABUTHv = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 2L, 0L, 0L
    ), ABUTHg = c(1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 2L, 0L, 
    0L), ABUTHd = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L), SETSPv = c(0L, 3L, 36L, 3L, 0L, 0L, 2L, 0L, 2L, 11L, 
    0L, 0L, 3L, 0L, 2L, 0L, 2L, 0L, 0L, 8L, 0L, 2L, 0L, 0L, 0L, 
    1L, 2L, 0L, 25L, 11L, 0L, 0L, 1L, 1L, 0L, 0L, 17L, 22L, 1L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 8L, 3L, 0L, 0L, 0L, 1L, 4L, 3L, 
    0L, 0L, 0L, 0L, 5L, 0L, 1L, 0L, 24L, 0L, 2L, 0L, 0L, 7L, 
    0L, 18L, 2L, 0L), SETSPg = c(0L, 3L, 33L, 2L, 0L, 0L, 2L, 
    0L, 1L, 7L, 0L, 0L, 3L, 0L, 2L, 0L, 1L, 0L, 0L, 6L, 0L, 2L, 
    0L, 0L, 0L, 0L, 2L, 0L, 13L, 6L, 0L, 0L, 0L, 1L, 0L, 0L, 
    5L, 12L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 
    0L, 1L, 4L, 3L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 24L, 0L, 
    2L, 0L, 0L, 2L, 0L, 4L, 2L, 0L), SETSPd = c(0L, 0L, 2L, 7L, 
    0L, 0L, 1L, 0L, 7L, 13L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 
    1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 2L, 4L, 0L, 0L, 0L, 
    0L, 0L, 0L, 2L, 13L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 4L, 2L, 0L, 1L, 0L, 0L, 5L, 1L, 0L, 2L, 
    2L, 0L, 0L, 0L, 0L, 9L, 0L, 6L, 1L, 0L), AMATAv = c(5L, 11L, 
    0L, 3L, 6L, 9L, 5L, 24L, 4L, 7L, 8L, 0L, 0L, 6L, 2L, 7L, 
    9L, 7L, 1L, 11L, 11L, 5L, 2L, 2L, 0L, 7L, 19L, 27L, 46L, 
    6L, 2L, 5L, 2L, 13L, 11L, 12L, 6L, 0L, 6L, 6L, 33L, 9L, 8L, 
    6L, 3L, 5L, 25L, 17L, 7L, 15L, 2L, 18L, 1L, 7L, 0L, 0L, 5L, 
    17L, 8L, 6L, 0L, 4L, 3L, 7L, 8L, 4L, 16L, 4L, 30L, 4L, 22L, 
    31L), AMATAg = c(2L, 0L, 0L, 0L, 0L, 0L, 3L, 4L, 0L, 1L, 
    0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 2L, 0L, 1L, 2L, 0L, 
    0L, 3L, 7L, 9L, 2L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 
    3L, 0L, 0L, 0L, 0L, 1L, 5L, 6L, 2L, 1L, 0L, 4L, 0L, 2L, 0L, 
    0L, 2L, 3L, 0L, 1L, 0L, 1L, 0L, 7L, 7L, 0L, 0L, 0L, 8L, 0L, 
    8L, 1L), AMATAd = c(0L, 3L, 1L, 2L, 1L, 0L, 2L, 3L, 22L, 
    13L, 0L, 0L, 0L, 3L, 1L, 1L, 0L, 0L, 2L, 1L, 4L, 2L, 0L, 
    1L, 0L, 3L, 2L, 1L, 0L, 16L, 5L, 3L, 1L, 4L, 2L, 0L, 0L, 
    2L, 0L, 4L, 3L, 0L, 0L, 3L, 0L, 7L, 0L, 16L, 2L, 1L, 9L, 
    0L, 7L, 3L, 2L, 0L, 1L, 6L, 0L, 1L, 1L, 1L, 2L, 0L, 1L, 0L, 
    6L, 15L, 1L, 3L, 14L, 4L), CHEALv = c(10L, 73L, 2L, 3L, 2L, 
    1L, 8L, 4L, 5L, 18L, 7L, 6L, 4L, 8L, 5L, 7L, 3L, 2L, 3L, 
    5L, 1L, 7L, 5L, 24L, 1L, 4L, 39L, 24L, 26L, 23L, 2L, 3L, 
    3L, 3L, 8L, 11L, 8L, 6L, 2L, 3L, 58L, 9L, 0L, 0L, 2L, 0L, 
    43L, 12L, 5L, 1L, 2L, 9L, 0L, 0L, 0L, 9L, 7L, 23L, 4L, 1L, 
    2L, 0L, 3L, 0L, 0L, 4L, 1L, 5L, 12L, 5L, 1L, 13L), CHEALg = c(9L, 
    56L, 1L, 0L, 2L, 0L, 6L, 0L, 2L, 3L, 4L, 0L, 0L, 6L, 2L, 
    4L, 1L, 2L, 3L, 1L, 0L, 5L, 0L, 7L, 0L, 0L, 17L, 7L, 12L, 
    11L, 1L, 1L, 0L, 1L, 2L, 2L, 3L, 0L, 1L, 0L, 33L, 3L, 0L, 
    0L, 0L, 0L, 13L, 6L, 3L, 0L, 0L, 3L, 0L, 0L, 0L, 6L, 3L, 
    18L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 1L, 1L, 1L, 3L, 4L, 0L, 
    3L), CHEALd = c(5L, 4L, 1L, 2L, 1L, 0L, 4L, 0L, 15L, 0L, 
    1L, 9L, 0L, 4L, 3L, 1L, 1L, 0L, 0L, 1L, 2L, 1L, 1L, 4L, 0L, 
    0L, 8L, 1L, 0L, 28L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 
    2L, 4L, 0L, 0L, 0L, 1L, 2L, 2L, 0L, 7L, 0L, 0L, 3L, 0L, 2L, 
    0L, 0L, 0L, 3L, 0L, 0L, 0L, 2L, 0L, 0L, 1L, 0L, 2L, 0L, 1L, 
    7L, 2L, 0L), SOLPTv = c(0L, 0L, 0L, 0L, 2L, 2L, 0L, 0L, 7L, 
    6L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 9L, 0L, 0L, 1L, 
    1L, 0L, 0L, 0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 1L, 0L, 0L), SOLPTg = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    7L, 5L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 16L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L), SOLPTd = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 1L, 0L, 0L), Othersv = c(4L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 3L, 0L, 
    12L, 1L, 0L, 0L, 0L, 0L, 0L, 15L, 7L, 0L, 0L, 0L, 0L, 3L, 
    1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    9L, 0L, 0L, 5L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 2L, 0L, 0L, 0L), Othersg = c(2L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 10L, 1L, 0L, 0L, 0L, 0L, 0L, 11L, 3L, 0L, 0L, 0L, 
    0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L), Otherd = c(0L, 0L, 0L, 
    0L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
    0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 4L, 3L, 0L, 0L, 0L, 
    0L, 0L, 0L, 1L, 0L, 3L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L, 0L, 6L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 
    0L, 0L, 0L, 0L, 2L, 0L, 0L, 1L, 0L), Total = c(20L, 87L, 
    40L, 10L, 10L, 12L, 15L, 28L, 18L, 42L, 15L, 6L, 8L, 14L, 
    11L, 15L, 15L, 9L, 5L, 27L, 21L, 26L, 8L, 28L, 2L, 16L, 60L, 
    51L, 128L, 47L, 4L, 8L, 7L, 17L, 22L, 24L, 31L, 28L, 9L, 
    9L, 91L, 18L, 13L, 7L, 5L, 5L, 76L, 33L, 12L, 18L, 13L, 28L, 
    5L, 15L, 1L, 10L, 12L, 40L, 19L, 9L, 4L, 5L, 30L, 7L, 10L, 
    8L, 18L, 16L, 46L, 31L, 25L, 44L), CF = c(147.5618474, 144.3572322, 
    134.7024663, 301.9891292, 136.3708209, 149.7547766, 141.3052833, 
    138.8055821, 138.9373933, 138.9320134, 139.0784198, 134.7758142, 
    144.3492862, 143.1154948, 136.9839258, 138.0458049, 135.6558009, 
    143.6449272, 140.0739052, 138.2965181, 139.7907293, 139.1612166, 
    150.3922339, 141.855702, 145.6904931, 142.11079, 138.3552161, 
    144.0879218, 139.4698253, 139.246811, 137.2233504, 138.4148268, 
    138.3451576, 141.5814259, 136.2848483, 139.0206525, 137.4667635, 
    289.2598331, 141.1964792, 142.8052673, 135.4605959, 139.54264, 
    135.6585006, 138.9543384, 135.333747, 135.065521, 138.0727374, 
    140.6742101, 377.2911964, 136.1589792, 147.3676897, 137.4964485, 
    149.2861325, 138.3809005, 145.8940507, 145.1086677, 137.0277925, 
    135.0324547, 136.4208582, 139.6855294, 136.0470631, 139.5799774, 
    137.4672086, 136.5512365, 136.9160686, 137.0088936, 142.1383353, 
    141.7463255, 141.8326908, 241.9498825, 134.9707796, 140.2835627
    )), .Names = c("ID", "Plot", "Side", "Trt", "Herb", "Crop", 
"Rot", "Rot.Herb", "ABUTHv", "ABUTHg", "ABUTHd", "SETSPv", "SETSPg", 
"SETSPd", "AMATAv", "AMATAg", "AMATAd", "CHEALv", "CHEALg", "CHEALd", 
"SOLPTv", "SOLPTg", "SOLPTd", "Othersv", "Othersg", "Otherd", 
"Total", "CF"), class = "data.frame", row.names = c(NA, -72L))

and the graph producedenter image description here

Community
  • 1
  • 1
Little Bee
  • 1,175
  • 2
  • 13
  • 22
  • I meant according to the last comment of newer version of ggplot 2, I have to arrange my data – Little Bee Apr 25 '16 at 23:11
  • 1
    I don't see where you arranged your data by `meandensity` within each `Rot` and `Rot.Herb`. Am I missing it? I expected something like `weedseed2 %>% arrange(Rot, Rot.Herb, -meandensity)` before plotting. – aosmith Apr 25 '16 at 23:16
  • Yes, I have to arrange `weedseed2` – Little Bee Apr 28 '16 at 16:39

1 Answers1

0

Thanks to aosmith. Adding this worked for me

weedseed3 <- weedseed2 %>% arrange(Rot, Rot.Herb, -meandensity)

Little Bee
  • 1,175
  • 2
  • 13
  • 22