代码之家  ›  专栏  ›  技术社区  ›  Ankur Sinha

在R中组合分组和堆叠条形图

  •  4
  • Ankur Sinha  · 技术社区  · 8 年前

    CatA    CatB   CatC 
    1        Y      A
    1        N      B
    1        Y      C
    2        Y      A
    3        N      B
    2        N      C 
    3        Y      A
    4        Y      B
    4        N      C 
    5        N      A
    5        Y      B
    

    我想让CatA在X轴上,它的计数在Y轴上。这张图很好。然而,我想为CatB创建组,并将其与CatC堆叠,使其在Y轴上保持计数。这就是我尝试过的,这就是它的外观:

    enter image description here

    我希望它看起来像这样:

    enter image description here

    我的代码:

    ggplot(data, aes(factor(data$catA), data$catB, fill = data$catC)) 
    + geom_bar(stat="identity", position = "stack") 
    + theme_bw() + facet_grid( ~ data$catC)
    

    1 回复  |  直到 8 年前
        1
  •  9
  •   Martin Schmelzer    8 年前

    您可以使用面:

    df <- data.frame(A = sample(1:5, 30, T), 
                     B = sample(c('Y', 'N'), 30, T), 
                     C = rep(LETTERS[1:3], 10))
    
    ggplot(df) + geom_bar(aes(B, fill = C), position  = 'stack', width = 0.9) + 
      facet_wrap(~A, nrow = 1) + theme(panel.spacing = unit(0, "lines"))
    

    enter image description here