ggplot2绘制双折线图如何指定x轴顺序并解决连线异常问题
问题原因
group=1的设置是错的,这个参数会把所有数据点强制归为同一个分组,所以折线会跨valence类别把所有点连在一起,当然出不来两条独立的线。
之前报geom_path: Each group consists of only one observation,是因为你把x轴转成因子后,ggplot默认的分组逻辑没识别到应该按valence拆分组,解决方法是明确指定正确的分组变量,不是把所有数据塞到一个组里。
修正方法
- 原来给
run设置因子水平的代码是对的,留着就行,能保证x轴顺序是你要的 - 把ggplot映射里的
group=1改成group=valence,明确告诉ggplot按valence字段拆分折线 - 给点、线、误差棒加统一宽度的位置避让,不然不同组的元素会叠在一起错位
修正后完整代码
# 自定义x轴顺序,原有逻辑无需修改 stats$run <- factor(stats$run, levels = c("Nobs_mINS","Nnf1_mINS","Nnf2_mINS")) ggplot(stats,aes(x=run,y=mean,color=valence,group=valence))+ geom_point(position = position_dodge(0.2)) + geom_line(position = position_dodge(0.2))+ geom_errorbar(aes(ymin = mean - sem, ymax = mean + sem), width = 0.2, position = position_dodge(0.2))
注意:三个几何层要用相同宽度的
position_dodge,不然点、线、误差棒会对不齐,偏移错位。
内容的提问来源于stack exchange,提问作者Sophy
相关产品推荐
相关产品推荐

