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

Nov*_*ain 26 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))
Run Code Online (Sandbox Code Playgroud)

然后我有这个情节: 点击这里

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

library(ggplot2)
ggplot(data = diamonds) + geom_bar(mapping = aes(x = cut, y = ..prop..))
Run Code Online (Sandbox Code Playgroud)

情节错了, 像这样

但是如果我用group = 2或group ="x"替换group = 1,那么该图仍然看起来正确.所以我不太明白group = 1的含义以及如何使用它.

eip*_*i10 41

group="whatever"是一个"虚拟"分组来覆盖默认行为,其中(这里)是分组cut,一般是按x变量分组.默认值geom_bar是按x变量分组,以便分别计算x变量每个级别中的行数.例如,这里的默认设置是geom_bar返回cut等于"Fair","Good"等的行数.

但是,如果我们想要比例,那么我们需要一起考虑所有级别cut.在第二个图中,数据首先按分组cut,因此每个级别cut都是单独考虑的.Fair in Fair的比例为100%,Good in Good等的比例group=1(或group="x"等)阻止了这一比例,因此每个切割水平的比例将相对于所有切割水平.