我有月度数据,我想绘制预测值:
z <- structure(list(Date = structure(c(14610, 14641, 14669, 14700,
14730, 14761, 14791, 14822, 14853, 14883, 14914, 14944, 14975,
15006, 15034, 15065, 15095, 15126, 15156, 15187, 15218, 15248,
15279, 15309, 15340, 15371, 15400, 15431, 15461), class = "Date"),
Value = c(4.5e+07, 5.1e+07, 5.6e+07, 5.6e+07, 5.9e+07, 6e+07,
6e+07, 6e+07, 6.4e+07, 6.5e+07, 7.5e+07, 7.3e+07, 7.4e+07,
8e+07, 8.7e+07, 9.1e+07, 9.2e+07, 9.6e+07, 1.09e+08, 1.08e+08,
1.23e+08, 1.29e+08, 1.33e+08, 1.43e+08, 1.27e+08, 1.27e+08,
1.23e+08, 1.21e+08, 1.3e+08)), .Names = c("Date", "Value"
), row.names = c(NA, -29L), class = "data.frame")
a <- seq(as.Date(tail(z, 1)$Date), by="month", length=5)
a <- data.frame(Date = a)
z.lm <- lm(Value ~ Date, data=x)
z.pre<-predict(z.lm, newdata=a)
我可以将z数据绘制为: 这有效:
plot(z$Date, z$Value, type="l", col="blue",
xlim=(c(as.Date(head(x,1)$Date)), c(as.Date(tail(a,1)$Date)), xaxt="n"))
axis(1, z$Date, format(z$Date, "%b %Y"), cex.axis = .7)
当我尝试将预测值绘制为:
lines(z.pre, col="red")
我没有收到错误,但我没有看到红线图添加到原始图中。
有什么想法吗?
答案 0 :(得分:2)
您需要正确指定xlim
和ylim
个参数。其中每个都应该是长度为2的数字向量。
函数range()
对此非常方便。尝试:
plot(x$Date, x$Value, type="l", col="blue", xaxt="n",
xlim=range(c(a$Date, x$Date)),
ylim=range(c(z.pre, x$Value))
)
axis(1, x$Date, format(x$Date, "%b %Y"), cex.axis = .7)
lines(a$Date, z.pre, col="red")