geom_point与geom_errorbarh的position dodge调整问题:数据点与误差棒间距过大
问题:ggplot绘图中数据点与误差棒间距过大
绘图脚本
dat_combined %>% arrange(depth_cm) %>% ggplot(aes(x = mean_delta_13C, y = depth_cm)) + geom_errorbarh(aes(xmin = mean_delta_13C - sd_delta_13c, xmax = mean_delta_13C + sd_delta_13c, color = site), height = 0.2, size = 0.5, position = position_dodge2(width = 0.3)) + geom_path(aes(group = interaction(Type, site)))+ geom_point(aes(color = site, shape = Type), size = 2.5, position = position_dodge2(width = 0.1)) + scale_color_manual(values = site_colors, labels = new_names) + labs(x = expression(delta^13*"C (‰)"), y = "Soil depth (cm)", color = "Ecosystem", shape = element_blank())+ scale_x_reverse(position = "top") + scale_y_discrete(limits = rev(depths)) + theme_pubr()
问题描述
生成的图表中,数据点与对应误差棒的横向间距过大(问题区域已用绿色圈出)。
解决方案
问题根源是geom_errorbarh和geom_point的position_dodge2(width)参数值不一致:误差棒用了width=0.3,而点用了width=0.1,导致两者错位。只需将两个图层的该参数设为相同值,即可让点与误差棒对齐。
修改后的核心代码示例:
geom_errorbarh(..., position = position_dodge2(width = 0.3)) + geom_point(..., position = position_dodge2(width = 0.3))
若希望布局更紧凑,可适当减小width数值(比如设为0.2),但必须保证两个图层的参数完全一致。
内容的提问来源于stack exchange,提问作者J.M
相关产品推荐
相关产品推荐

