时间序列数据矩阵中点的绘图向量

时间:2013-04-05 03:31:03

标签: r time-series

我有一个100 * 8的数据矩阵,其中每一行是8个不同时间点的值向量。我很想知道如何在R中绘制下面的矩阵以使图形与下面的图形非常相似:

enter image description here

以下是我的数据矩阵示例。

           1    2        3     4    5    6    7      8
line1     0.22  0.075  0.35  0.89   0   0.35  0.42  2.34   
line2      0    0.47   0.89  2.51   0   0.36  1.14  2.09
line3     1.22  0.075  0.35  0.89   0   0.35  0.42  1.34
line4     2.22  0.75   0.45  0.99   0   0.54  0.24  2.34
line5     3.22  0.275  0.55  0.819  0   0.25  0.34  2.34

任何帮助或建议都将受到高度赞赏。感谢。

2 个答案:

答案 0 :(得分:6)

试试matplot()。默认情况下,它将列视为系列,因此我们需要在使用前转置(t())数据框。以下是使用您提供的数据子集的示例

timeser <- read.table(text = "           1    2        3     4    5    6    7      8
line1     0.22  0.075  0.35  0.89   0   0.35  0.42  2.34   
line2      0    0.47   0.89  2.51   0   0.36  1.14  2.09
line3     1.22  0.075  0.35  0.89   0   0.35  0.42  1.34
line4     2.22  0.75   0.45  0.99   0   0.54  0.24  2.34
line5     3.22  0.275  0.55  0.819  0   0.25  0.34  2.34", header = TRUE)

matplot(t(timeser), type = "l")

enter image description here

答案 1 :(得分:5)

您可以将对象转换为zoo对象,然后使用plot.zoo获取所需的图表。 zoo是一个时间序列。

> mat
       X1    X2   X3    X4 X5   X6   X7   X8
[1,] 0.22 0.075 0.35 0.890  0 0.35 0.42 2.34
[2,] 0.00 0.470 0.89 2.510  0 0.36 1.14 2.09
[3,] 1.22 0.075 0.35 0.890  0 0.35 0.42 1.34
[4,] 2.22 0.750 0.45 0.990  0 0.54 0.24 2.34
[5,] 3.22 0.275 0.55 0.819  0 0.25 0.34 2.34

> plot.zoo(zoo(t(mat), order.by=1:ncol(mat)), screens = 1, col = rainbow(ncol(t(mat))), ylab="Data")

这将给出

enter image description here