我正在r4ds.had.co.nz的第3.7节学习 geom_bar 。我运行这样的代码:
library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
然后我有这个情节:
关键是,如果我排除“group = 1”部分:
library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop..))
情节错误,
但如果我将group = 1替换为group = 2或group =“x”,则该图仍然看起来正确。所以我不太明白group = 1的含义以及如何使用它。
答案 0 :(得分:38)
group="whatever"
是一个"虚拟"分组以覆盖默认行为,其中(此处)是按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。