使用ggplot2的多个时间序列图,每个都具有不等数量的观察值

时间:2013-05-11 09:55:37

标签: r ggplot2

我正在寻找一些关于多个时间序列图的帮助,如下面的描述。

我有一个具有以下结构的数据框。列isin正在重复,它有5个唯一值。对于每个isin,有多行数据由t_week,MS和t_MS组成。每个isin具有不等的行数。换句话说,数据帧有两个时间序列(t_week,MS)(t_week,t_MS),每个isin具有不等数量的数据点。

我想使用ggplot2在单个地块上绘制所有5个时间序列(t_week,MS)。我可以轻松地绘制相同长度的多个时间序列,但是在这里寻求帮助“R”方式。请帮忙。

问候

ķ

str(df)
'data.frame':   95 obs. of  4 variables:
 $ isin  : chr  "IN0019960056" "IN0019960056" "IN0019960056" "IN0019960056" ...
 $ t_week: Date, format: "2006-01-09" "2006-01-16" ...
 $ MS    : num  0 0 0.01 0.86 0.54 0.23 1.55 0.07 0.29 0.79 ...
 $ t_MS  : num  0.14 0.14 0.14 0.75 0.35 0.31 0.63 0.28 0.54 0.52 ...

1 个答案:

答案 0 :(得分:3)

canocial ggplot2方式如下:

ggplot(df, aes(x = t_week, y = MS, color = isin)) + geom_line()

这将构建t_week vs MS的图,isin中的每个唯一元素都有不同颜色的线。时间序列不包含相同数量的行是没有问题的,它们甚至不必覆盖相同的时间范围。一个例子:

df_part1 = data.frame(t_week = seq(1,5,length=100), MS = runif(100), isin = "A")
df_part2 = data.frame(t_week = seq(2,6,length=500), MS = runif(500) + 1, isin = "B")
df = rbind(df_part1, df_part2)

library(ggplot2)
ggplot(df, aes(x = t_week, y = MS, color = isin)) + geom_line()

enter image description here