ggplot geom_bar:aes的意思(group = 1)

时间:2016-10-05 16:02:10

标签: r ggplot2 geom-bar

我正在r4ds.had.co.nz的第3.7节学习 geom_bar 。我运行这样的代码:

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

然后我有这个情节: click here

关键是,如果我排除“group = 1”部分:

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

情节错误,like this

但如果我将group = 1替换为group = 2或group =“x”,则该图仍然看起来正确。所以我不太明白group = 1的含义以及如何使用它。

2 个答案:

答案 0 :(得分:38)

group="whatever"是一个&#34;虚拟&#34;分组以覆盖默认行为,其中(此处)是按cut分组,通常是按x变量分组。 geom_bar的默认值是按x变量分组,以便分别计算x变量每个级别中的行数。例如,此处默认为geom_bar返回cut等于&#34; Fair&#34;,&#34; Good&#34;等等的行数< / p>

但是,如果我们想要比例,那么我们需要一起考虑cut的所有级别。在第二个图中,数据首先按cut分组,因此cut的每个级别都会单独考虑。 Fair in Fair的比例是100%,Good in Good等的比例也是如此。group=1(或group="x"等)可以防止这种情况发生,因此每个级别的比例将会相对于所有级别的切割。

答案 1 :(得分:0)

分组将帮助绘图查看包含特定切割的特定行,并找到相对于整个数据库的比例,作为整个数据集中理想切割的比例。

如果未使用组,则相对于包含该字段的数据计算该比例,并且在任何情况下最终都将是100%。例如,理想切割在理想切割特定数据中的比例将为1。