library(tidyverse) # Includes the packages ggplot2 and tidyr, which we use below
# Get the time values for the time series
Time = attributes(co2)[[1]]
Time = seq(Time[1],Time[2], length.out=(Time[2]-Time[1])*Time[3])
# Convert td to data frame
dat = cbind(Time, with(td, data.frame(Observed=x, Trend=trend, Seasonal=seasonal, Random=random)))
ggplot(gather(dat, component, value, -Time), aes(Time, value)) +
facet_grid(component ~ ., scales="free_y") +
geom_line() +
theme_bw() +
labs(y=expression(CO[2]~(ppm)), x="Year") +
ggtitle(expression(Decomposed~CO[2]~Time~Series)) +
theme(plot.title=element_text(hjust=0.5))
我知道这是关于ggplot的时间序列分解。我主要需要在第3和第4行解释。我想在代码上应用每月时间序列。
答案 0 :(得分:0)
您似乎有一个长度至少为3的向量Time
。
seq(Time[1],Time[2], length.out=(Time[2]-Time[1])*Time[3])
创建从Time[1]
到Time[2]
的序列,结果向量的长度在Time[2]-Time[1])*Time[3]
中计算。
以下行只是将一些对象绑定到一个工作的data.frame中。 Data.frames是必须能够使用ggplot2绘图的。 ggplot2
代码或多或少是基本的样板代码,您应该能够辨别自己(参见superb documentation)。
即使您没有数据,也可以自己尝试。
Time <- c(1, 10, 5)
seq(from = Time[1], to = Time[2], length.out = (Time[2] - Time[1]) * Time[3])
[1] 1.000000 1.204545 1.409091 1.613636 1.818182 2.022727 2.227273
[8] 2.431818 2.636364 2.840909 3.045455 3.250000 3.454545 3.659091
[15] 3.863636 4.068182 4.272727 4.477273 4.681818 4.886364 5.090909
[22] 5.295455 5.500000 5.704545 5.909091 6.113636 6.318182 6.522727
[29] 6.727273 6.931818 7.136364 7.340909 7.545455 7.750000 7.954545
[36] 8.159091 8.363636 8.568182 8.772727 8.977273 9.181818 9.386364
[43] 9.590909 9.795455 10.000000
我会让你用你的数据重置。