首页 > 解决方案 > ggplot 按百分比拆分条形图

问题描述

我有一个小标题...

# A tibble: 9 x 4
  Variable Correlation Type  Percentage
  <fct>          <dbl> <fct>      <dbl>
1 Bar1            0.16 A            0.7
2 Bar1            0.16 B           NA  
3 Bar1            0.16 C            0.3
4 Bar2            0.17 A            0.1
5 Bar2            0.17 B           NA  
6 Bar2            0.17 C            0.9
7 Bar3            0.17 A            0.1
8 Bar3            0.17 B            0.6
9 Bar3            0.17 C            0.3

我想要一个带有变量的条形图在 x 轴上和在 y 轴上的相关性。

x 轴(Bar1、Bar2、Bar3)应该只有 3 个条形,y 轴值为 0.16、0.17、0.17。

我想按类型将 3 个条分成 A、B 和 C 百分比。例如,Bar1 为 70% A 和 30% C。

到目前为止,我有以下...

dat %>% 
  ggplot(., aes(x = Variable, y = Correlation/3, fill = Type)) +
  geom_col(stat = "identity")

但这只是将条平均分为 A、B 和 C。我也不知道如何合并百分比。

情节尝试

标签: rggplot2

解决方案


您需要将堆积条添加到相关值,因此您应该在 y 轴上绘制相关乘以百分比(更准确地说是比例):

ggplot(df, aes(x = Variable, y = Percentage * Correlation, fill = Type)) + 
  geom_col() + 
  labs(y = "Correlation")

在此处输入图像描述


推荐阅读