使用R制作轨迹图

时间:2013-05-15 17:27:19

标签: r scatter-plot

我想制作一个我的数据集的轨迹图,如X,Y的散点图,但数据点使用箭头(箭头指向下一个位置)与一条线连接

我的数据如下:

A    T   X     Y      V      GD  ND   ND2 TID
1 1 3.88 2.7 675.0 27.000  27.000  NA    NA  t1
2 1 3.92 2.7 677.7 42.691  69.691 2.7  7.29  t1
3 1 3.96 2.7 675.0 55.662 125.353 0.0  0.00  t1
4 1 4.00 2.7 675.0 55.662 181.015 0.0  0.00  t1
5 1 4.04 2.7 675.0 55.662 236.677 0.0  0.00  t1
6 1 4.08 2.7 680.4 42.691 279.368 5.4 29.16  t1

我尝试使用qplot来实现它:

qplot(X, Y, data = sub.data1, color = TID, group = TID)+ 
  geom_line(linetype=5, size=1.5, arrow=arrow(angle=15, ends="both", type="closed"))+
  geom_point (shape=19, size=5, fill="black")

这没关系,它有效。只是我想在我的情节箭头中指出指向下一个数据点的点。 任何帮助都会很棒! 谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您想要探索geom_path和geom_segment属性。见http://docs.ggplot2.org/current/geom_segment.htmlhttp://docs.ggplot2.org/current/geom_path.html

例如,我可以拍摄您的情节,只需将线条更改为路径,按照它们在表格中呈现的顺序而不是X轴来连接点:

library("ggplot2")
library(grid) # needed for arrow function
library(data.table)
# see http://docs.ggplot2.org/current/geom_segment.html
df <- data.frame(a=c(1,2,3,4,5,6),T=c(3.88,3.92,3.96,4.00,4.04,4.08),X=c(2.7,2.9,2.7,2.0,2.7,2.0),Y=c(675.0,600.7,675.0,690.0,675.0,680.4),V=c(27.0,42,55,55,55,42),GD=c(27,70,125,181,236,279),ND=c(NA,2.7,0,0,0,5.4),ND2=c(NA,7,0,0,0,29.2),TID="t1")
qplot(X, Y, data = df, color = TID, group = TID)+ 
        geom_path(linetype=5, size=1.5, arrow=arrow(angle=15, ends="both", type="closed"))+
        geom_point (shape=19, size=5, fill="black")