2016-01-26 40 views
1

我正在嘗試創建散點圖,然後在scatterplot中的點之間添加線條。我能得到這個使用plotsegments,工作,如下圖所示:使用ggplot鏈接散點圖中的興趣點

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') 

但無濟於事。任何指針將非常感謝!

回答

4

的想法是使用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) 

enter image description here