使用ts.plot更改轴-R

时间:2018-12-30 19:41:28

标签: r time-series

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")

因此,为了恢复,我正在寻找一种方法来直接更改间隔和轴的尺寸,或者至少一种不显示这些内容的方法...非常感谢!

1 个答案:

答案 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)

screenshot

或将最后一行替换为:

library(ggplot2)
autoplot(z, facet = NULL, na.rm = TRUE) + scale_x_yearmon()

screenshot