R ggplot2:如何用笛卡尔坐标中的箭头连接点?

时间:2017-09-16 17:58:30

标签: r plot ggplot2 coordinates

我有兴趣学习如何使用包在笛卡尔平面上使用arrow()函数连接点。

数据:

Coord = data.frame(x=c(2,-5,7),y=c(4,12,-78))
ggplot()+ coord_cartesian(xlim = c(-136,136), ylim = c(-6,210)) 

我尝试使用geom_segment,但我不确定如何继续。

我想学习如何将一个点连接到多个点?

我打算用这个方法为足球制作传球地图。

1 个答案:

答案 0 :(得分:2)

如果我理解你想要的是什么,你需要在数据框中创建代表行尾的变量xendyend

df <- data.frame(x=c(2,-5,7),y=c(4,12,-78))
df$xend <- c(df$x[2:nrow(df)], NA)
df$yend <- c(df$y[2:nrow(df)], NA)
df <- df[1:(nrow(df)-1),]

使用geom_segment绘图:

ggplot(df)+ coord_cartesian(xlim = c(-136,136), ylim = c(-6,210))+
 geom_segment(aes(x=x,y=y, xend=xend, yend=yend))

更新:从一点到多点: 例如:

df <- data.frame(x=c(2,2,2,2,2),y=c(4,4,4,4,4), xend=c(34,3,12,100,-123), yend=c(18,-5,44,200,178))

ggplot(df)+ coord_cartesian(xlim = c(-136,136), ylim = c(-6,210))+
     geom_segment(aes(x=x,y=y, xend=xend, yend=yend))