R语言ggplot绘制分组箱线图:不修改原数据集新增Gruppe C汇总箱线
实现代码
不需要修改原数据集,直接通过ggplot图层独立指定数据源的特性新增汇总箱线即可,完整代码如下:
library(ggplot2) ggplot(data, aes(x=Location, y=Value, fill=Group)) + # 原有Group分类箱线 geom_boxplot(position = position_dodge(width = 0.9)) + # 新增Gruppe=C的汇总箱线,单独指定筛选后的数据 geom_boxplot(data = data[data$Gruppe == "C", ], aes(fill = "C"), position = position_dodge(width = 0.9)) + theme_classic() + # 补充C对应的颜色值,可根据需求自行调整 scale_fill_manual(values=c("A" = "chartreuse3", "B" = "yellow2", "CA" = "firebrick3", "GE" = "cyan4", "SA" = "darkgoldenrod2", "ST" = "darkorange4", "STR" = "darkgreen", "WA" = "deeppink3", "C" = "darksalmon"))
关键说明
- 无需修改原数据集:ggplot的每个几何图层都支持单独传入数据源,我们直接在新增的箱线层筛选
Gruppe == "C"的观测即可,完全不影响原始数据,适配大数据集使用场景。 - 宽度与对齐统一:通过
position_dodge(width = 0.9)统一所有箱线的排列间距,保证所有箱线宽度一致、对齐整齐。 - 图例自动适配:新增图层中将
fill映射为自定义的"C"标签,在scale_fill_manual中指定对应颜色后,会自动在图例中新增C的分类项。
内容的提问来源于stack exchange,提问作者Sandae
相关产品推荐
相关产品推荐

