2013-03-16 79 views
3

我的目標是獲得1個情節,其中有多個時間序列與自動圖例來識別系列。在我的CSV文件中,從1996年1月開始,我有5列(農業,食品,燃料,手工,礦石)。R包xtsExtra問題繪製一個多個ts

library(xts) 
library(xtsExtra) 
RuChAgri <- read.csv("https://dl.dropbox.com/u/6421260/Forum/RuChAgri.csv", sep=";") 
#transform csv data according to R ts 
RuChAgri <- ts(RuChAgri, start = c(1996, 1), frequency = 1) 
#try to get 1 plot with multiple ts with an auto legend 
plot.xts(RuChAgri, screens = factor(1, 1), auto.legend = TRUE) 

當我運行最後一行我得到的錯誤:

Error in try.xts(x) : 
    Error in xts(x.mat, order.by = order.by, frequency = frequency(x), 
.CLASS = "ts", : NROW(x) must match length(order.by) 

是否有人知道什麼是錯我的代碼?

回答

3

您的ts對象構造不良。該系列產品是按月,所以頻率應該是12,而不是1

RuChAgri <- ts(RuChAgri, start=c(1996, 1), frequency=12) 

那麼你應該將其轉換爲XTS對象,然後通過調用plotplot.xts。你真的不應該叫plot.xts直接,即使它會嘗試你給它一個XTS對象的對象轉換...

x <- as.xts(RuChAgri) 
plot(x, screens=factor(1, 1), auto.legend=TRUE) 

enter image description here

+0

由於它是exactely是我想做的事。不過,我有一個問題。你知道是否可以添加一些不同的形狀,如線條上的方形,線條上的三角形等。我只是問這個問題,然後即使是黑白相間的人也可以理解這個情節。 – S12000 2013-03-16 15:45:08

+0

@ Swiss12000:您可以像使用常規情節一樣進行:將'pch = seq(ncol(x)),type =「b」'添加到呼叫中。 – 2013-03-16 15:47:20

+0

感謝這正是我想要做的 – S12000 2013-03-17 23:56:39