R语言ggplot中同一x值内关联相同受试者的实现问题
解决方法
你需要调整geom_line的分组规则和位置对齐逻辑,让它在同一个cloud(x轴值)下连接同一受试者(subject)的不同condition数据点,具体修改如下:
修改后的代码
Dwplot <- ggplot(data = DwDataCat, aes(x = cloud, y = weight, color = condition)) + # 先画连线,避免被点遮挡 geom_line( mapping = aes(group = subject), position = position_dodge(width = 0.9) # 和点的dodge宽度保持一致 ) + geom_point( position = position_jitterdodge( jitter.width = 0.2, jitter.height = 0, dodge.width = 0.9 ) ) + facet_wrap(~reorder(category, desc(category)), scales = "free") + scale_y_continuous(expand = expansion(add = c(0.2, 0.25))) print(Dwplot)
关键调整说明
- 将
color=condition移到全局aes中,减少重复代码 geom_line用group=subject指定按受试者分组,确保同一受试者的不同condition数据点被连接- 给
geom_line设置position_dodge(width=0.9),和geom_point的dodge.width匹配,保证线与点的分组位置对齐 - 先绘制连线再绘制点,避免线被点遮挡
- 优化
facet_wrap写法,直接用~reorder(category, desc(category))更简洁规范
内容的提问来源于stack exchange,提问作者CG1992
相关产品推荐
相关产品推荐

