我正在学习r4ds第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的含义以及如何使用它.

推荐答案

group="whatever"是覆盖默认行为的"虚拟"分组,默认行为(此处)是按cut分组,通常是按x变量分组.geom_bar的默认值是按x变量分组,以便分别计算x变量每个级别中的行数.例如,这里的默认值是geom_bar,返回cut等于"一般"、"良好"等的行数.

然而,如果我们想要比例,那么我们需要一起考虑cut个层次.在第二个图中,数据首先按cut分组,因此cut的每个级别都是单独考虑的.公平与公平的比例为cut%,良好与良好的比例为cut%.group=1(或group="x"等)防止了这一点,因此每一级别的削减比例将与所有级别的削减相对应.

R相关问答推荐

使用ggcorrplot删除值,但保留不重要相关性的 colored颜色

替换字符的所有实例,但仅限于匹配字符串中

pdf Quarto中的中心美人鱼

在ubuntu 22.04上更新到R4.4后包安装出现编译错误

多个ggpredicate对象的平均值

使用spatVector裁剪网格数据时出现的问题

在不安装软件包的情况下测试更新

在"gt"表中添加第二个"groupname_col",而不连接列值

使用整齐的计算(curl -curl )和杂音

传递ggplot2的变量作为函数参数—没有映射级别以正确填充美学

将. xlsx内容显示为HTML表

识别连接的子网(R-igraph)

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

如何计算增加10米(0.01公里)的行?

R中治疗序列的相对时间指数

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

在r中整理图例和堆叠图的问题

如何判断代码是否在R Markdown(RMD)上下文中交互运行?

R:使用ApexCharge更改标签在饼图中的位置