R 重复测量ggplot2::geom_点()与ggplot2::geom_线()的连接

R 重复测量ggplot2::geom_点()与ggplot2::geom_线()的连接,r,ggplot2,R,Ggplot2,我想根据id连接绘图中的点。问题是,在我的x轴上,我用position\u dodge()定位了geom\u point(),所以我不太确定应该如何映射它 Reprex: 库(ggplot2) df听起来你要找的基本上是一个嵌套的分类x轴。这就是在ggplot中刻面的目的,但不是你想要的外观。但是,您可以设置各种主题元素来隐藏您正在刻面的事实。我认为这比另一种方法更简单,即在阶段上旋转数据,并为每个id绘制几何体段,但这也需要对分类x轴进行一些欺骗,并给出基本相同的结果: ggplot(df,

我想根据
id
连接绘图中的点。问题是,在我的x轴上,我用
position\u dodge()
定位了
geom\u point()
,所以我不太确定应该如何映射它

Reprex:

库(ggplot2)

df听起来你要找的基本上是一个嵌套的分类x轴。这就是在ggplot中刻面的目的,但不是你想要的外观。但是,您可以设置各种主题元素来隐藏您正在刻面的事实。我认为这比另一种方法更简单,即在
阶段
上旋转数据,并为每个
id
绘制
几何体段
,但这也需要对分类x轴进行一些欺骗,并给出基本相同的结果:

ggplot(df, aes(phase, value)) +
  geom_point(aes(color = id)) +
  geom_vline(aes(xintercept = c(1.5)), colour = "gray85") +
  geom_vline(aes(xintercept = c(0.5)), colour = "gray85") +
  geom_line(aes(group = id, color = id)) +
  coord_cartesian(xlim = c(0.5, 2.5), ylim = c(2.49, 5), expand = 0) +
  theme_light() +
  labs(x = "group") +
  facet_wrap(.~group, strip.position = "bottom") +
  theme(strip.placement = "outside",
        axis.text.x = element_blank(),
        strip.text.x = element_text(colour = "black"),
        strip.background = element_rect(fill = "white"),
        panel.spacing.x = unit(0, "npc"),
        panel.border = element_rect(fill = NA, colour = NA),
        panel.grid.major.x = element_blank())

不分面:

df%>%
pivot_加宽(name_from=“phase”)%%>%
突变(组=作为因子(组))%>%
变异(x0=as.numeric(group)-0.25,xend=as.numeric(group)+0.25)%>%
ggplot(aes(x=组,颜色=id))+
几何点(aes(x=x0,y=time1))+
几何点(aes(x=xend,y=time2))+
geom_段(aes(x=x0,y=time1,xend=xend,yend=time2))+
比例x连续(分段=1:3,标签=levels(as.factor(df$group)))+
主题灯()

谢谢你,艾伦。是的,我知道这个解决方法,但我真的在寻找一种没有方面的方法。如果不可能,我会接受你的建议answer@FMM不需要刻面就可以做到这一点,但这需要对数据进行一点重塑和一点黑客攻击。“一个看起来不像方面的方面”可能是最好的(请参阅我的更新)。记住,这里需要的基本上是一个嵌套的分类x轴。这就是在ggplot中刻面的用途。另一种方法是在相位上旋转数据并绘制
geom_段
s,这可能更符合您的要求。如果你不喜欢facets的更新版本,我当然可以给你举个例子。你的更新答案看起来很棒!我对你提到的另一种方法很好奇。。我想我从没试过这个。。你介意举个例子吗?太好了!非常感谢。