r - 在ggplot2 boxplot上添加多个标签

标签 r ggplot2 labels

我正在尝试在此箱形图上为2组添加男性和女性平均年龄的标签。到目前为止,我只能按组进行此操作,而不能按性别和组进行。

我的数据框:

Age=c(60, 62, 22, 24, 21, 23) 
Sex=c("f", "m", "f","f","f","m")
Group=c("Old", "Old", "Young", "Young", "Young", "Young")

aging<-data.frame(Age, Sex, Group)

和剧情的命令:
ggplot(data=aging, aes(x=Group, y=Age))+geom_boxplot(aes(fill=Sex))
+geom_text(data =aggregate(Age~Group,aging, mean), 
aes(label =round(Age,1), y = Age + 3), size=6)

最佳答案

为了清楚起见,您可能应该将聚合数据保存在单独的对象上,并在position=position_dodge()选项中使用geom_text():

aging.sum = aggregate(Age ~ Group + Sex, aging, mean)

ggplot(data=aging, aes(x=Group, y=Age, fill=Sex)) + 
  geom_boxplot(position=position_dodge(width=0.8)) +
  geom_text(data=aging.sum, aes(label=round(Age,1), y = Age + 3), 
            size=6, position=position_dodge(width=0.8))

播放width,直到对结果满意为止。请注意,我将fill=Sex放在全局aes定义中,因此它也适用于文本标签。

编辑:在@ user20650上,建议将position_dodge()添加到geom_boxplot()中以进行正确对齐。

关于r - 在ggplot2 boxplot上添加多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328582/

相关文章:

r - 数据框中每行的最小值

r - 带 l 的 ggplot map

r - 如何从 ggplot2 图例中删除线条美学?

r - 从标签画线到R中的点

r - 在 R 中使用没有命名空间的包

在 R 中读取无穷大的 JSON

R使用data.table更快地按整个组创建滞后的方法

r - ggplot2 为值和日期/日期时间指定辅助轴

r - 在ggplot2中标记特定点