r - 使用百分比时美学中的组论点

标签 r ggplot2

这是来自“R for Data Science”的数据可视化问题。

问题5.在我们的比例条形图中,我们需要设置group = 1,为什么?换句话说,这两张图有什么问题?

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, y = ..prop..))

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = color, y = ..prop..))

正如您看到的代码及其结果,由于不包含组参数,y-axix 中存在问题。我很清楚,所以在将原始代码更改为下面之后。
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = color, y = ..prop.., group = 1))

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = color, y = ..prop.., group = color))

我可以处理第一个,它是黑色的。但问题是下一个。我知道包括“group = 1”就像黑条一样,因此将“group = 1”更改为“group = color”。 y 轴现在是 Prop ,但它不完全是我想要的,因为切割变量(x 轴)中所有级别的整体比例总和必须为 1(=100%)但它超过了 1。我想改变比例值(y 轴)。

如果您能帮我解决这个问题,我将不胜感激。

enter image description here

最佳答案

..prop..计算组内的百分比。它需要一个分组变量,否则每个 x是它自己的组和prop = 1 即 100%,对于每个 x .

当你把 group = 1 prop是所有条目中 x 的百分比,因为所有条目都属于同一组。你已经发现了。

在您的最后一个图中,当您按 color 分组时,百分比是在颜色内计算的。这意味着每种颜色的总和为 1。

这是您尝试实现的目标吗?

ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = color, y = ..count../sum(..count..)), position = "fill")


enter image description here

关于r - 使用百分比时美学中的组论点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57985791/

相关文章:

r - 使用箭头连接一项内但跨组的点

r - 在ggplot2中添加水平线到绘图和图例

r - R 中具有稳健回归的异常值

r - ggplot2:根据填充值为某些点设置alpha = 0

r - 基于映射和用户数据创建新的 tibble 列

r - 图例中的 ggplot2 虚线未正确显示

r - 在函数内调用时使用 png 函数不起作用

c++ - 使用 Barabási-Albert 模型计算和理解无标度网络

r - 错误 : argument "x" is missing, 没有默认值

r - 小平面标签合并成单行ggplot2