2013-03-16 80 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