如何在ggplot中绘制多条线段

4
#Input data
df1<- data.frame(Gradient=rep(c(0,5,10,15), each=5),
                 load=c(0,4.4,10.7,17,21.4),
                vo2max=c(28.0,28.2,31.0,32.0,34.6,41.0,41.1,45.4,48.8,50.5,56.3,57.0,
                         63.6,66.8,69.9,71.3,75.0,82.1,85.5,89.3))
head(df1)
sp<-ggplot(data=df1, aes(x=load, y=VO2max, group=Gradient)) +
  geom_line()+
  geom_point()
#Horizontal line segment
sp+geom_segment(aes(x=0,y=50,xend=25,yend=50))
sp+geom_segment(aes(x=0,y=60,xend=25,yend=60))``
sp+geom_segment(aes(x=0,y=75,xend=25,yend=75))

如何在同一图表中绘制三条线段? 我只能一次绘制一条线段。

1
(1) VO2maxvo2max,请给我们可用的代码。 (2) sp+geom_segment(...)+geom_segment(...)+geom_segment(...) - r2evans
3个回答

5
将数据放入 data.frame 中:
line_df <- data.frame(
  x = 0,
  y = c(50, 60, 75),
  xend = 25,
  yend = c(50, 60, 75)
)

sp +
  geom_segment(
    data = line_df, 
    mapping = aes(x=x, y=y, xend=xend, yend=yend), 
    inherit.aes = FALSE
  )

2

只需将它们全部加在一起。

sp +
  geom_segment(aes(x=0,y=50,xend=25,yend=50)) +
  geom_segment(aes(x=0,y=60,xend=25,yend=60)) +
  geom_segment(aes(x=0,y=75,xend=25,yend=75))

enter image description here


1
ggplot(data=df1, aes(x=load, y=vo2max, group=Gradient)) +
  geom_line()+
  geom_point() + 
  geom_segment(
    data=tibble(), 
    aes(
      x=c(0, 0, 0),
      y=c(50, 60, 75),
      xend=c(25, 25, 25),
      yend=c(50, 60, 75)
    ), 
    inherit.aes=FALSE
  )

此外请考虑使用 geom_hline()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接