0
我正在与tsoutliers
一起绘制时间序列中的异常值,但我无法将绘图的x轴中的日期显示为实际日期。现在他们被显示为看起来是Julian日期的某种类型; 16816,16816.2等我已经研究过,并没有找到太多的东西,但我想知道是否有一种方法使用ggplot()
与ts
对象,因为我知道ggplot2
自动处理日期很好。将x轴格式化为阴谋中的日期
这是我的工作的代码,我只是把一些快速的样本数据为数据帧,实际数据从动态PowerBI数据帧来:
library(forecast)
library(tsoutliers)
library(lubridate)
library(dplyr)
library(ggplot2)
ActualDemand <- c(1000, 250, 500, 3000)
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 = startDate)
series.outliers <- tso(ts)
plot(series.outliers)
这里是输出的外观像: