绘制多个时间序列数据

时间:2011-07-07 23:48:59

标签: r

我有一个如下所示的时间序列(csv文件)数据。每个观察间隔为2秒:

Group,Id, Observations (illustration only--csv file dont have headers)
A,21,2,3,4
B,12,2,9
C,13,3,5
A,14,4,6,7,9,12,3,4,5,6
B,15,3,5,2,1,3
C,16,8,67
A,27,98,78
B,18,2,3,4,5,6,7,8,1,2,3,4,5
C,19,2,3,4,5,6,6,4,3,3,2,3,4,4,5,6,66,6,4,3,232

每一行都是一个单独的时间序列数据。我试图比较和对比这些时间序列数据w.r.t组(ABC)和一些图(至少目前为止)。

编辑: 我按照Import data into R with an unknown number of columns?中的建议阅读了csv文件,该文件将此csv读作

 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21  X22
  A 21  2  3  4 NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
  B 12  2  9 NA NA NA NA NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
                      ---------------------------
  C 19  2  3  4  5  6  6  4   3   3   2   3   4   4   5   6  66   6   4   3  232

我试图通过使用

melt(data,c("X1","X2")) 
融合数据来使用ggplot绘制此数据,这样可以得到结果

    X1 X2   variable value
1    A 21       X3     2
2    B 12       X3     2
3    C 13       X3     3
4    A 14       X3     4
5    B 15       X3     3
6    C 16       X3     8
7    A 27       X3    98
8    B 18       X3     2
9    C 19       X3     2
10   A 21       X4     3
11   B 12       X4     9
12   C 13       X4     5
13   A 14       X4     6
14   B 15       X4     5
15   C 16       X4    67
----------------------

X3,X4,X5..X22是一段时间内的观察。 我想通过独立绘制每个观察结果来比较不同的数据组(A,B,C)(或者说每个观察的创建时间序列)。
我无法弄清楚动物园包的绘图解决方案。我想知道如何为这类时间序列数据生成这样的图?

1 个答案:

答案 0 :(得分:2)

试试这个:

Lines <- "A,21,2,3,4
B,12,2,9
C,13,3,5
A,14,4,6,7,9,12,3,4,5,6
B,15,3,5,2,1,3
C,16,8,67
A,27,98,78
B,18,2,3,4,5,6,7,8,1,2,3,4,5
C,19,2,3,4,5,6,6,4,3,3,2,3,4,4,5,6,66,6,4,3,232"

library(zoo)
k <- max(count.fields(textConnection(Lines), sep = ","))
DF <- read.table(textConnection(Lines), sep = ",", fill = TRUE, col.names = 1:k, 
   as.is = TRUE)

# next line may not be needed but won't hurt
DF[[1]] <- gsub(" ", "", DF[[1]])

z <- zooreg(t(DF[-1]), start = 0, deltat = 2)

plot(z, screen = DF[[1]])