geom_bar 中的 aes(group = x) 如何计算比例?

How is proportion computed with aes(group = x) in geom_bar?

我想知道如何使用以下代码计算 y 轴上的比例:

library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = stat(prop), group = color))

这里是 output plot.

我知道 post 关于 aes(group = 1) 的含义。但这并不能解决我的问题。

谢谢。

如果我们在每个条形图周围画黑线,我们可以更清楚地看到发生了什么:

library(ggplot2)

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, y = stat(prop), group = color), 
           color = "black")

我们可以看到这些条是堆叠在一起的。显然每组加起来不为一个,所以比例不是由不同颜色组成的每个剪裁的比例;相反,它们是属于特定切割的每种颜色的比例。如果我们使用 position_dodge 并根据 color:

填充,则更容易看到这一点
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, y = stat(prop), fill = color, group = color), 
           color = "black", position = "dodge")