我有兴趣学习如何使用ggplot2包在笛卡尔平面上使用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
,但我不确定如何继续。
我想学习如何将一个点连接到多个点?
我打算用这个方法为足球制作传球地图。
答案 0 :(得分:2)
如果我理解你想要的是什么,你需要在数据框中创建代表行尾的变量xend
和yend
。
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))