gpt4 book ai didi

R ggplot2 预测日期格式

转载 作者:行者123 更新时间:2023-12-04 13:04:03 27 4
gpt4 key购买 nike

很难在预测自动绘图 (ggplot) 上获取 x 轴以将日期显示为 "%m/%d/%y"而不是十进制格式。我找到了一个解决方案,添加了 + scale_x_date(labels = format("%m/%d/%y"))到 ggplot 上,但这给了我已经存在的 x 轴以及无效输入的错误。这似乎应该像将十进制格式转换为日期一样简单,因为从头开始构建整个 x 轴似乎需要做更多的工作。

这是我的代码:

  library(forecast)
library(lubridate)
library(ggplot2)
library(ggfortify)
library(scales)


ActualDemand <- c(250, 800 , 500, 4000)
STRING_DATE <- c("05/13/2017","05/06/2017", "5/20/2017", "05/27/2017")

dataset <- data.frame(ActualDemand, STRING_DATE)

#convert from string to date
dataset$STRING_DATE = lubridate::mdy(dataset$STRING_DATE)
dataRowCount <- nrow(dataset)

#find start date
startDate <- NULL

for (i in 1:dataRowCount) {
if (i == 1) {
startDate <- dataset[i, 2]
next
}

compareDate <- dataset[i,2]

if (compareDate < startDate) {
startDate <- compareDate
} else {
next
}
}

#transformed set
datasetSorted <- dataset[order(dataset$STRING_DATE),]

#build time series, run outlier detection
ts <- ts(datasetSorted$ActualDemand, frequency = 52, start = c(year(startDate), week(startDate)))
print(week(startDate))
cleaned_ts <- tsclean(ts)

#forecast algorithm
tbat_model <- tbats(cleaned_ts)
tbat_forecast <- forecast(tbat_model, h=26)

autoplot(tbat_forecast)

这是图表,它解释日期但将它们显示为小数:

enter image description here

仅供引用,这是一些快速示例数据,实际数据来自 PowerBI 动态数据帧。

最佳答案

希望你早点解决了。如果不是(对于其他人),我在过去几个小时里一直试图自己解决同样的问题,所以这是我的解决方案:
只需将代码的最后几行修改为:

my_date_transform <- function(x) {format(date_decimal(x), "%m/%d/%y")}
autoplot(tbat_forecast)+
scale_x_continuous(labels = my_date_transform)
给你以下结果:
final_graph .

关于R ggplot2 预测日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com