R时间序列plot.ts()

时间:2015-07-13 16:29:27

标签: r plot timeserieschart

我正在尝试阅读时间序列并执行plot.ts(),但是我得到了奇怪的结果。也许我做错了什么。我尝试包括开始和结束日期,但输出仍然是错误的。 任何帮助赞赏。谢谢。

这是代码和输出:

sales1 <- read.csv("TimeS.csv",header=TRUE)
sales1

salesT <- ts(sales1)
salesT
plot.ts(salesT)

output:
> sales1 <- read.csv("TimeS.csv",header=TRUE)
> sales1

  year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4

> salesT <- ts(sales1)
> salesT

Time Series:
Start = 1 
End = 4 
Frequency = 1 
  year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4

> plot.ts(salesT)

 It looks like I can't paste the plot.  instead of 1 graph it has 5 separate    
 plots stacked onto each other.

4 个答案:

答案 0 :(得分:1)

试试这个

salesT<-ts(unlist(t(sales1[,-1])),start=c(1991,1),freq=4)

enter image description here

答案 1 :(得分:0)

这一行正在使时间成为一个不太可能的系列之一:

> salesT <- ts(sales1)

我们需要转置数据框,以便它跨行而不是向下读取,我们使用c将结果矩阵转换为构成系列数据部分的向量。 (图表后继续)

# create sales1
Lines <- "year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4"
sales1 <- read.table(text = Lines, header = TRUE)

# convert to ts and plot
salesT <- ts(c(t(sales1[-1])), start = sales1[1, 1], freq = 4)
plot(salesT)

screenshot

关于评论,如果数据看起来像这样,则更直接,下面的行将产生上述情节。我们假设数据已经排序并从一年的开始开始,所以我们不需要使用第二列:

Lines2 <- "year qtr sales
1  1991  q1   4.8
2  1991  q2   4.1
3  1991  q3   6.0
4  1991  q4   6.5
5  1992  q1   5.8
6  1992  q2   5.2
7  1992  q3   6.8
8  1992  q4   7.4
9  1993  q1   6.0
10 1993  q2   5.6
11 1993  q3   7.5
12 1993  q4   7.8
13 1994  q1   6.3
14 1994  q2   5.9
15 1994  q3   8.0
16 1994  q4   8.4"
sales2 <- read.table(text = Lines2, header = TRUE)

salesT2 <- ts(sales2$sales, start = sales2$year[1], freq = 4)
plot(salesT2)
已修复

更新。添加了对评论的回复。

答案 2 :(得分:0)

在这里,我认为您需要正确格式化尝试:

salesT <- ts(sales1)

ts.plot(salesT, frequency = 4, start = c(1991, 1), end = c(1994, 4)))

答案 3 :(得分:0)

原始数据的格式很难直接用于时间序列。你可以试试这个:

sales1 <- t(sales1[,-1])
sales1 <- as.vector(sales1)
my_ts <- ts(sales1, frequency = 4, start=c(1991,1))
plot.ts(my_ts)

enter image description here