如何在ggplot2分组箱线图中调整均值线位置使其与对应箱体居中对齐
问题解决方法
问题原因
你使用fill映射实现分组箱线图时,geom_boxplot默认会通过position_dodge逻辑错开同一y分类下的多个箱体,但stat_summary默认未继承该位置调整规则,因此均值线全部居中对齐到y轴分类整体位置,无法匹配到对应分组的箱体。
修复方案
在stat_summary配置中添加与箱线图一致的位置调整参数即可,修改后的完整代码如下:
No.Forest.Plot <- ggplot(data = NoForest_Long, aes(x= value, y = variable, fill = ObsSim)) + labs(x= "Percent of Cover", y= "Land Type Categories") + ggtitle( "Observed vs. Simulated Land Categories (No Forest)") + geom_boxplot(fatten = NULL) + stat_summary(fun = mean, fun.min = mean, fun.max = mean, geom = "errorbar", width = 0.5, position = position_dodge(width = 0.9))
参数说明
position_dodge(width = 0.9)中的0.9是ggplot箱线图默认的分组错开宽度,和geom_boxplot的默认配置完全匹配,可保证均值线刚好对齐对应箱体的中心- 如果你手动调整过箱线图的
position参数,只需将此处的0.9替换为你自定义的dodge宽度即可
内容的提问来源于stack exchange,提问作者Looms
相关产品推荐
相关产品推荐

