我正在寻找一些关于多个时间序列图的帮助,如下面的描述。
我有一个具有以下结构的数据框。列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 ...
答案 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()