使用 ggplot 绘制 link 个兴趣点的散点图

Using ggplot to link points of interest in scatterplot

我正在尝试创建散点图,然后在散点图中的点之间添加线条。我可以使用 plotsegments 让它工作,如下所示:

set.seed(10)
xvar = runif(10, 0, 1)
yvar = runif(10, 0, 1)

start = c(1, 1, 1, 9)
end = c(2, 4, 6, 10)

plot(xvar, yvar)
segments(xvar[start], yvar[start], xvar[end],yvar[end], col= 'blue')

我想实现相同类型的想法,但使用 ggplot2。我这样做的原因是我可能想为情节增添美感,而 ggplot2 比 plot 更允许这样做。我尝试了以下变体:

ggplot(dat, aes(x = xvar, y = yvar)) +
  geom_point(shape=20, size=1) +
  segments(xvar[start], yvar[start], xvar[end], xvar[end], col = 'blue')

但无济于事。任何指点将不胜感激!

想法是使用 geom_line 并为每个段定义组 (gr):

dat <- data.frame(xvar = xvar, yvar = yvar)    
dat2 <- cbind(dat[c(start, end), ], gr = 1:length(start))

ggplot(dat, aes(x = xvar, y = yvar)) + geom_point(shape = 20, size = 1) +
  geom_line(aes(x = xvar, y = yvar, group = gr), data = dat2)