2013-04-28 81 views
1

我正在嘗試使用matplot()將多個日期數據添加到多個數據系列的圖表中,並且找不到解決方案。任何幫助將不勝感激。如何將日期序列添加到數據矩陣?

例如,讓我們創建2數據系列的一個簡單的矩陣:

> a <-matrix(1+rnorm(20),10,2) 
> a 
      [,1]  [,2] 
[1,] 2.7540781 1.31428162 
[2,] 2.4630120 1.04378781 
[3,] 1.7556846 -0.08914417 
[4,] 0.9446534 1.59287973 
[5,] 1.2365692 1.28315556 
[6,] -0.7582962 -0.17436644 
[7,] 1.6519822 3.30782961 
[8,] 0.3979254 0.38058894 
[9,] 1.6826193 1.47889565 
[10,] 0.1343743 0.68098755 

接下來,讓我們創建一個棗系列:

> dates <- data.frame(days = seq(as.Date('2013-01-01'), by = 'days', length = 10)) 
> dates 
     days 
1 2013-01-01 
2 2013-01-02 
3 2013-01-03 
4 2013-01-04 
5 2013-01-05 
6 2013-01-06 
7 2013-01-07 
8 2013-01-08 
9 2013-01-09 
10 2013-01-10 

任何想法,我怎麼能繪製系列的「一」,所以它對應於日期系列「日期」?具體來說,我希望能夠通過matplot(繪製),如:

matplot(a,type="l") 

隨着一系列「日期」沿着標準的方式下運行。謝謝!

+0

這是一個解決方案:'matplot (yday(日期[1])中,a,類型= 「L」)'? – Frank 2013-04-28 19:03:24

+0

不,生成錯誤:錯誤as.matrix(x):找不到函數「yday」 – 2013-04-28 20:17:09

+0

好的。我沒有注意到這是來自我安裝的一個軟件包。 – Frank 2013-04-28 21:28:35

回答

0

我從來沒有聽說過的matplot之前,最常用的圖形系統是一個基礎(plotlines等),latticeggplot2。我將使用其中的一個作爲用戶代碼的數量,例子對於這些用戶來說非常大。

我更喜歡使用ggplot2,注意需要進行調整了一下數據的結構,讓它與ggplot2工作順利:

library(ggplot2) 
library(reshape2) 
dat = data.frame(dates, a) 
dat_melt = melt(dat, id.vars = "days") 
ggplot(dat_melt, aes(x = days, y = value, color = variable)) + geom_line() 

enter image description here

+0

謝謝,保羅。這將工作! – 2013-04-28 20:17:41