我有一个数据集,它是一个58196长的单变量时间序列,可以从nc文件中读取。时间格式为“自1901-01-01以来的小时数”,但是当我在本机绘图中进行绘图时,它只是将数字放在x轴上,而不是日期上。我也真的很想使用ggplot2绘制此数据,我不确定如何执行以在x轴上显示日期的预测。
这是我当前的代码,并附上了我的预测。
library(ncdf4)
library(forecast)
ncname <- "data"
ncfname <- paste(ncname, ".nc", sep="")
dname <- "pc"
print(ncin)
level <- ncvarget(ncin, "level")
nlevel <- dim(level)
time <- ncvar_get(ncin, "time")
timeunits <- ncatt_get(ncin, "time", "units")
ntime <- dim(time)
data_array <- ncvar_get(ncin, dname)
data_name <- ncatt_get(ncin, dname, "long_name")
dataunits <- ncatt_get(ncin, dname, "units")
fillvalue <- ncatt_get(ncin, dname, "_FillValue")
nc_close(ncin)
data_atlevel <- data_array[13, ] #Data at correct level
model <- Arima(data_atlevel, order=c(5, 0, 2))
datafcst <- forecast(model, level=95, h=10)
datafcst
这是我得到的积分预测。
Point Forecast Lo 95 Hi 95
58197 -1.0771861 -1.233741 -0.92063154
58198 -1.0619501 -1.372808 -0.75109220
58199 -1.0679265 -1.506646 -0.62920653
58200 -1.0199718 -1.552383 -0.48756100
58201 -1.0440858 -1.710606 -0.37756579
58202 -0.9907978 -1.796984 -0.18461137
58203 -0.9618964 -1.891371 -0.03242174
58204 -0.8945481 -1.924210 0.13511352
58205 -0.8809432 -2.024227 0.26234020
58206 -0.8099497 -2.061208 0.44130892
在这里使用dput(data_atlevel)是我的数据数组的最后一个代码片段。
-0.0164826595000697, 0.104653384815459, 0.144666301411712,
0.406755420463853,
0.542331794386273, 0.772911688508443, 0.828654158311162,
1.00638835512443,
1.02792247457942, 1.01310671932778, 0.970892191725733,
1.04831366415597,
0.973069827884041, 0.876318047545758, 0.752430017949216,
0.763014654544908,
0.713777524308546, 0.761635798278535, 0.683255478853632,
0.778303948835296,
0.782141199251199, 0.782386316509802, 0.645595202862218,
0.727508430007767,
0.626212602439461, 0.504371813146744, 0.274250430414235,
0.221935768196244,
0.0955978809727627, -0.0117079372064144, -0.220506096426176,
-0.280678113337438, -0.453903395790332, -0.558297954401431,
-0.684971715619909,
-0.564071754625509, -0.433913981524223, -0.344838175285692,
-0.276691358483194,
-0.0548432651627894, 0.0987101422673561, 0.161095707907232,
0.192603198478924,
0.37047216630912, 0.596148685775624, 0.709837093562596,
0.747193326805386,
0.834313129573062, 0.846131581908811, 0.725875974537757,
0.513447772481864,
0.481781009489498, 0.500408010535818, 0.493558364249431,
0.442018049583641,
0.563841476333714, 0.512644345356563, 0.406415545768519,
0.304138546560665,
0.344371236404124, 0.318640232058254, 0.288404684269042,
0.148595436033634,
0.242808391810353, 0.314848026042242, 0.312313203476422,
0.237498989259957,
0.40957356897388, 0.481207219937924, 0.377373174821711,
0.262952160510882,
0.291153919328814, 0.217630757477135, 0.221005490614492,
0.183186952148093,
0.259937980564005, 0.249506614072888, 0.183332972502036,
0.0364441950508707,
0.053725551911807, 0.0693769134725313, -0.0808066792116259,
-0.18171813264877,
-0.0493799795907768, 0.0445452522186435, 0.122164325736002,
0.212984374525893,
0.29001342164436, 0.298053187322413, 0.291905411666604,
0.195592541780216,
0.267534318598644, 0.368070820767661, 0.328049383662298,
0.194165510823487,
0.260603283301608, 0.342147730543151, 0.31173310207737,
0.355312158043337,
0.571008261101836, 0.706944792543549, 0.82879806488094,
0.974436043310877,
1.14302880864744, 1.20557808113165, 1.21299356275298,
1.17815791170924,
1.28295658294446, 1.19760427504148, 1.04365225746354,
0.899849906805248,
0.892025832204036, 0.805459364633312, 0.726511050764506,
0.718865825514464,
0.970667434937238, 1.17770847391413, 1.24344799640867,
1.19950652463226,
1.16726900972386, 1.03832992303071, 0.798481676817567,
0.620341026264972,
0.595943630221845, 0.56625911849429, 0.535218489717758,
0.48156033792909,
0.555048357972321, 0.555523556583205, 0.436775498179143,
0.335189690873195,
0.335735990769063, 0.156197092072704, -0.109413942180462,
-0.309332840349659,
-0.423112123260487, -0.582305168516083, -0.733093879897233,
-0.878533966114525,
-0.913591482716756, -0.927739936050881, -1.00944828473482,
-0.954596475363381,
-0.65373712144728, -0.476517683595976, -0.422610668989477,
-0.430362132554042,
-0.351913432549997, -0.270696606789033, -0.186484295363074,
-0.099740139097897,
0.029704154069367, 0.0664090863070563, -0.150476314540677,
-0.396841710776302,
-0.486497118842713, -0.593497285303129, -0.705987971623734,
-0.781265400572687,
-0.762280716228769, -0.896848223341563, -0.941459725854574,
-1.00367829312857,
-0.9908477396666)
我以前的ggplot2代码是
library(ggplot2)
dates <- as.Date(time/24, origin="1900-01-01") #Interval is 6hrs
data_frame <- data.frame(datafcst, dates)
ggplot(data_frame, aes(x=dates, y=datafcst) +geompoint())
这会给我带来错误,因为大小不一样,但是我想要的是每次绘制的所有数据+预测数据以及预测时间。
我希望能够将此预测与先前观察到的数据作图,以获得x轴上带有日期的ggplot。我很困,所以任何帮助都会很棒。
非常感谢!