0

根据以下描述,我正在寻找有关多个时间序列图的帮助。

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

我想使用 ggplot2 在一个图上绘制所有 5 个 isin 时间序列(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 ...
4

1 回答 1

3

官方ggplot2方式如下:

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

这将构建一个t_weekvs的图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()

在此处输入图像描述

于 2013-05-11T12:12:56.540 回答