实现这一目标的最简单方法是使用3列,一列用于常用x组件,一列用于y,一列用于粒子。为此,您需要将数据转换为长格式:
> df <- data.frame(t=c(1,2,3,4,5), x.1 = c(-1,1,3,4,5), x.2 = c(5,2,1,4,6)) > df t x.1 x.2 1 1 -1 5 2 2 1 2 3 3 3 1 4 4 4 4 5 5 5 6 > (df <- tidyr::gather(df, "particle", "y", -t)) t particle y 1 1 x.1 -1 2 2 x.1 1 3 3 x.1 3 4 4 x.1 4 5 5 x.1 5 6 1 x.2 5 7 2 x.2 2 8 3 x.2 1 9 4 x.2 4 10 5 x.2 6
然后,使用 group 参数为 geom_line 分别绘制它们:
group
geom_line
ggplot(df, aes(x = t, y = y)) + geom_line(aes(group = particle, color = particle))
首先,您必须以此格式获取数据
data <- data.table(particle = as.factor(rep(1:3, each = 5)), x = sample(-10:10, 15, replace = TRUE), y = sample(-10:10, 15, replace = TRUE)) data particle x y 1: 1 -8 -4 2: 1 -5 -2 3: 1 -1 -5 4: 1 -3 9 5: 1 4 -7 6: 2 2 1 7: 2 -8 -10 8: 2 -4 -8 9: 2 -6 -4 10: 2 -8 -3 11: 3 -10 10 12: 3 6 -5 13: 3 -5 -6 14: 3 -6 8 15: 3 1 -4
一列用于识别粒子,另一列用于坐标中的位置。
此链接可能有助于您更改数据: http://www.cookbook-r.com/Manipulating_data/Converting_data_between_wide_and_long_format/
然后只是按粒子绘制分组(使用 color AES)
color
ggplot(data = data, aes(x = x, y = y, color = particle)) + geom_path(size = 3)
如果要更改路径的顺序,只需添加一列时间并按该列对df进行排序。