【问题标题】:Forecast plot with x axis labels as date以 x 轴标签为日期的预测图
【发布时间】:2020-07-08 12:01:17
【问题描述】:

我有一个收入和日期等数据集。

我使用 arima 绘制数据。

ts_data = ts(dataset$Revenue,frequency = 7)
arima.ts = auto.arima(ts_data)
pred = forecast(arima.ts,h=30)
plot(pred,xaxt="n")

当我绘制数据时,它会产生如下图。

我的期望低于,

对于像 13.1M 这样的预测值,我需要以百万为单位显示值。 我需要将 x 轴显示为日期而不是数据点数字。

我尝试了几个链接但无法破解它。以下是我做的实验,

尝试使用 ts_data 中的开始日期和结束日期也不起作用。我的开始日期是“2019-09-27”,结束日期是“2020-07-02”

在绘图功能中尝试了 axis_date 也不起作用。

请帮我破解一下。

非常感谢。

【问题讨论】:

    标签: r powerbi


    【解决方案1】:

    您可以使用axis()指定轴刻度值和标签

    plot(pred,xaxt="n", yaxt="n")  # deactivate x and y axis
    yl<-seq(-5000000,15000000,by=5000000)   # position of y-axis ticks
    axis(2, at=yl, label=paste(yl/1000000, "M"))  # 2 = left axis
    

    您可以使用at 指定y 轴刻度的所需位置,以及与label 关联的标签。为了获得像 10 M 这样的值,我使用了 paste 函数将带有字母 M 的数字连接起来。

    您也可以对 x 轴使用相同的方法,甚至可能存在更有效的方法。没有可用的具体数据,我使用通用间距和标签只是为了给你一个想法。设置所需位置后,您可以生成与其关联的日期序列(要生成日期序列,请参阅https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/seq.Date

    axis(1, at=seq(1,40,by=1), label=seq(as.Date("2019-09-27"),as.Date("2020-07-02"),by="week")) # 1 = below axis
    

    您还可以更改使用format() 显示的日期格式,例如label=format(vector_of_date, "%Y-%b-%d") 为年-月(以字母表示)-日。

    【讨论】:

    • 谢谢@Fabiola,它可以工作,但有没有可能显示预测值?因为客户可能只想查看图表中的预测值。感谢您的支持。
    • 您可以指定在函数 'plot()' 'xlim=c(xlower,xupper)' 中添加的 x 轴范围。例如 plot(pred,xaxt="n", yaxt="n", xlim=c(0,10)) 将绘制系列的第一部分。
    猜你喜欢
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2021-06-19
    • 2020-11-20
    • 2016-06-01
    • 2021-06-12
    • 2014-08-20
    • 1970-01-01
    相关资源
    最近更新 更多