https://i.stack.imgur.com/wJvMk.png] 1
因此,经过数小时和几天的时间工作,我终于设法得到了一个不错的产品。我对社区负有很多责任。
但是,最后我遇到了麻烦,需要重新定义x和y轴并更改间隔。确实,我希望我可以将X轴设置为日期格式,而目前,它只是一组数字(请参见所附图片)。另外,我想更改y轴的比例。
问题是我试图将axes = F
放入我的ts.plot
函数中,但没有考虑该参数。它适用于大多数绘图功能,但不适用于此功能,但不幸的是,我不知道如何使用另一个ts绘图功能来完成工作...
这里是我的数据摘要:
month AveragePrice pct.chg
1 sep 2016 3.17 0
2 oct 2016 0.792 -0.750
3 nov 2016 0.225 -0.715
4 déc 2016 0.179 -0.204
5 jan 2017 0.445 1.48
6 fév 2017 3.36 6.55
以及df的信息:
> dput(head(MonthlyAveragePricesHAIRPEPE, 10))
structure(list(month = structure(c(2016.66666666667, 2016.75,
2016.83333333333, 2016.91666666667, 2017, 2017.08333333333, 2017.16666666667,
2017.25, 2017.33333333333, 2017.41666666667), class = "yearmon"),
AveragePrice = c(3.16968709677419, 0.791904347826087, 0.225412279295455,
0.179445766423358, 0.444554531722054, 3.35761658783784, 5.6894554715794,
16.6639257580906, 53.1994216287425, 66.4208618873239), pct.chg = c(0,
-0.750163242096669, -0.71535415872605, -0.203921955874672,
1.4773754242451, 6.55276652974736, 0.694492305103592, 1.9289139956068,
2.19249031716991, 0.24852601501664)), row.names = c(NA, -10L
), class = c("tbl_df", "tbl", "data.frame"))
这是我的代码:
fit <- arima(log(MonthlyAveragePricesHAIRPEPE$AveragePrice), order=c(1,0,0),seasonal = list(order = c(1, 0, 1), period = 1))
pred <- predict(fit, n.ahead = 18)
ts.plot(as.ts(MonthlyAveragePricesHAIRPEPE$AveragePrice),2.73^pred$pred, log = "y", lty = c(1,3), xlab = "Date", ylab="Average Price Per Unit")
因此,为了恢复,我正在寻找一种方法来直接更改间隔和轴的尺寸,或者至少一种不显示这些内容的方法...非常感谢!
答案 0 :(得分:1)
尝试一下:
library(dplyr)
library(zoo)
tt <- as.ts(read.zoo(MonthlyAveragePricesHAIRPEPE[1:2]))
fit <- arima(log(tt), order = c(1, 0, 0),seasonal = list(order = c(1, 0, 1), period = 1))
pred <- predict(fit, n.ahead = 18)
z <- as.zoo(cbind(tt, 2.73^pred$pred))
plot(z, screen = 1)
或将最后一行替换为:
library(ggplot2)
autoplot(z, facet = NULL, na.rm = TRUE) + scale_x_yearmon()