ggplot geom_bar:aes的含义(组=1)

ggplot geom_bar:aes的含义(组=1),r,ggplot2,geom-bar,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)) 然后我有这个情节: 问题是,如果我排除“group=1”部分: 情节将是错误的 但如果我将group=1替换为group=2或group=“x”,则绘图看起来仍然正确。因此,我不太理解这里group=1的含

我正在学习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”部分:

情节将是错误的

但如果我将group=1替换为group=2或group=“x”,则绘图看起来仍然正确。因此,我不太理解这里group=1的含义以及如何使用它。

group=“whatever”
是一个覆盖默认行为的“虚拟”分组,它(这里)是按
cut
分组,通常是按x变量分组。
geom_bar
的默认设置是按x变量分组,以便分别计算x变量每个级别的行数。例如,这里的默认值是
geom_bar
返回
cut
等于“Fair”、“Good”等的行数


然而,如果我们想要比例,那么我们需要一起考虑所有级别的<代码>剪切<代码>。在第二个图中,数据首先按

cut
进行分组,因此
cut
的每个级别都是单独考虑的。公平与公平的比例为100%,良好与良好的比例为100%,等等。
group=1
(或
group=“x”
,等等)阻止了这一点,这样,每个切割级别的比例将与所有切割级别相对。

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

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

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