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)
這裏是輸出的外觀像: