用线连接点

Connect points with a line

数据是这样的

score<-c(3.2,3.5,5.4,5.5)
subject<-c('math','math','reading','reading')
sex<-c('men','women')

data<-data.frame(sex,score,subject)

data %>% 
  ggplot(aes(x=score,y=subject,color=sex)) +
  geom_point()

我想连接点(从男性到女性的主题之间)以显示性别差距。仅添加 geom_line().

似乎是不可能的

以下代码(来自您上面的代码)生成相同的图,但现在每个 subject 的点都链接在 sex 之间。

data %>% 
  ggplot(aes(x=score,y=subject)) +
  geom_line()+
  geom_point(aes(color=sex))

注意 color=sex 必须只为 geom_point() 而不是一般的 ggplot 乐趣而定义。

您可以像评论中提到的那样使用group

library(tidyverse)
data %>% 
  ggplot(aes(x=score,y=subject,color=sex, group = subject)) +
  geom_point() +
  geom_line(col = "black")

输出: