2013-04-05 76 views
1

我有一個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 

任何幫助或建議將不勝感激。謝謝。

回答

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

+0

真棒..感謝.. – snape 2013-04-05 03:55:42

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

+0

真棒..感謝.. – snape 2013-04-05 20:43:48