R ggplot2预测日期格式
很难让预测自动绘图(ggplot)上的x轴显示日期为R ggplot2预测日期格式,r,R,很难让预测自动绘图(ggplot)上的x轴显示日期为“%m/%d/%y”,而不是十进制格式。我找到了一个解决方案,将+缩放x_日期(labels=format(“%m/%d/%y”))添加到ggplot上,但这给了我已经存在的x轴的错误以及无效输入。这似乎应该像将十进制格式转换为日期一样简单,因为从头开始构建整个x轴似乎需要做更多的工作 这是我的密码: library(forecast) library(lubridate) library(ggplot2) library(gg
“%m/%d/%y”
,而不是十进制格式。我找到了一个解决方案,将+缩放x_日期(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)
库(预测)
图书馆(lubridate)
图书馆(GG2)
图书馆(GGF)
图书馆(比例尺)
事实上,希望你能早点解决。如果不是(对其他人来说),我在过去的几个小时里一直在试图解决同样的问题,所以下面是我的解决方案:
只需将代码的最后几行修改为:
my_date_transform <- function(x) {format(date_decimal(x), "%m/%d/%y")}
autoplot(tbat_forecast)+
scale_x_continuous(labels = my_date_transform)
my\u date\u转换