【问题标题】:Create a bar chart with proportions创建具有比例的条形图
【发布时间】:2021-12-28 00:34:23
【问题描述】:

我正在尝试根据与此类似的数据创建条形图:

bird dr season
ambi 45 molting
ambi 45 molting
ambi 45 molting
ambi 45 breeding
ambi 45 breeding
ambi 45 winter
ambi 45 winter
abum 60 molting
abum 60 molting
abum 60 molting
abum 60 breeding
abum 60 breeding
abum 60 winter
abum 60 winter

我希望在 y 轴上列出所有鸟类,并且我希望 x 轴是博士。我希望根据每个季节的观察比例对条形进行颜色编码。例如,对于 abum,我希望条形图达到 0.6,并且我希望条形图根据季节进行颜色编码。 abum 在蜕皮季节观察到 3/7,在繁殖期间观察到 2/7,在冬季观察到 2/7。我希望栏中的颜色能够反映这一点。这是我到目前为止的代码:

plot <- ggplot(data=test, aes(x=dr, y=bird, fill=season)) +
     geom_bar(stat="identity")+
     scale_fill_brewer(palette="Paired")+
     theme_minimal()

这会在 y 轴上正确设置我的鸟,并对条形进行颜色编码,但我认为它使用了某种计数值,而不是 x 轴上的 dr 值。

代码生成的图像:

x 轴不反映 dr 值。我不确定 x 轴值来自哪里。我还想颠倒鸟类的顺序,使它们按字母顺序从上到下。

【问题讨论】:

    标签: r ggplot2 bar-chart


    【解决方案1】:

    我不确定dr 部分。如果有什么问题,请告诉我。

    library(dplyr)
    library(ggplot2)
    library(forcats)
    
    test %>%
      group_by(bird, season) %>%
      summarise(key = unique(dr),
                dr = sum(dr)) %>%
      group_by(bird) %>%
      mutate(dr = dr/sum(dr) * key/100) %>%
      ungroup %>%
      mutate(bird = fct_reorder(bird, desc(bird))) %>%
      ggplot(aes(x=bird, y=dr, fill=season)) +
      geom_bar(stat="identity")+
      scale_fill_brewer(palette="Paired")+
      theme_minimal() +
      coord_flip()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-17
      • 1970-01-01
      • 2022-01-28
      • 2020-05-02
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多