代码之家  ›  专栏  ›  技术社区  ›  stackinator Brenton Wiernik

无法使ggplot条堆叠

  •  1
  • stackinator Brenton Wiernik  · 技术社区  · 7 年前

    我想要这些 chickwt$feed aes() 十 和 填满

    我还想把每个小节的名字显示在分类的中心。

    library(tidyverse)
    chickpct <- chickwts %>% 
      group_by(feed) %>% 
      mutate(count = n()) %>%
      ungroup() %>% 
      mutate(percent = count / n()) %>% 
      group_by(feed) %>% 
      summarize(percent = mean(percent))
    
    ggplot(chickpct, aes(x = feed, y = percent, fill = feed)) + 
      geom_bar(stat = "identity")
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   www    7 年前

    添加具有统一标签的新列,将该列映射到 x .

    library(tidyverse)
    chickpct <- chickwts %>% 
      group_by(feed) %>% 
      mutate(count = n()) %>%
      ungroup() %>% 
      mutate(percent = count / n()) %>% 
      group_by(feed) %>% 
      summarize(percent = mean(percent)) %>%
      mutate(Feed = "Feed")
    
    ggplot(chickpct, aes(x = Feed, y = percent, fill = feed)) + 
      geom_bar(stat = "identity") +
      xlab("")
    

    enter image description here

    为每个条形图块添加标签。

    library(tidyverse)
    chickpct <- chickwts %>% 
      group_by(feed) %>% 
      mutate(count = n()) %>%
      ungroup() %>% 
      mutate(percent = count / n()) %>% 
      group_by(feed) %>% 
      summarize(percent = mean(percent)) %>%
      mutate(Feed = "Feed") %>%
      mutate(feed = factor(feed, levels = rev(levels(feed)))) %>%
      mutate(Y = cumsum(percent),
             Y2 = Y - percent/2)
    
    ggplot(chickpct, aes(x = Feed, y = percent, fill = feed)) + 
      geom_bar(stat = "identity") +
      geom_label(aes(y = Y2, label = feed)) +
      xlab("") +
      theme(legend.position = "none")
    

    enter image description here