Как изменить масштаб оси Y на графике для объекта прогноза? - PullRequest
3 голосов
/ 23 марта 2020

У меня есть следующий график с plot. Я в основном построил график модели . Проблема, как вы можете видеть, заключается в оси Y. Я хочу изменить его масштаб, чтобы он отображал значения в виде целых чисел, а не в научной нотации c. Я уже пробовал с ylim = c(a,b), но это не сработало.

Это данные для построения графика:

structure(list(method = "ARIMA(1,2,0)", model = structure(list(
coef = c(ar1 = 0.165440211592995), sigma2 = 314372.871343033, 
var.coef = structure(0.0387588365491072, .Dim = c(1L, 1L), .Dimnames = list(
    "ar1", "ar1")), mask = TRUE, loglik = -201.464633423226, 
aic = 406.929266846451, arma = c(1L, 0L, 0L, 0L, 1L, 2L, 
0L), residuals = structure(c(0.144002762945477, -0.257594259049227, 
169.62992413163, -40.455716409227, 3.98528254071288, 325.669119576814, 
-277.933508979317, 161.058607396831, 100.485413762468, 161.981734397248, 
-21.1101185099251, 467.511038095663, 167.408540762885, 264.467148159716, 
-870.459264535865, 1471.66097350626, 116.971877311758, -159.918791518434, 
967.205782005673, -64.1682010133445, -372.385939678148, 352.062155538701, 
632.526018003249, 1002.33521590517, 479.534164073812, 461.147699502253, 
-1091.4663608196, -614.056109041783), .Tsp = c(1, 28, 1), class = "ts"), 
call = arima(x = corona_total$Total_Cases, order = c(1, 2, 
    0)), series = "corona_total$Total_Cases", code = 0L, 
n.cond = 0L, nobs = 26L, model = list(phi = 0.165440211592995, 
    theta = numeric(0), Delta = c(2, -1), Z = c(1, 2, -1), 
    a = c(-779, 59138, 53578), P = structure(c(-2.22044604925031e-16, 
    2.86887593857152e-17, -5.56124814802562e-17, 2.86887593857152e-17, 
    -3.31423141286073e-17, -1.61722928090181e-32, -5.56124814802562e-17, 
    -3.75958688714994e-17, -5.56124814802562e-17), .Dim = c(3L, 
    3L)), T = structure(c(0.165440211592995, 1, 0, 0, 2, 
    1, 0, -1, 0), .Dim = c(3L, 3L)), V = structure(c(1, 0, 
    0, 0, 0, 0, 0, 0, 0), .Dim = c(3L, 3L)), h = 0, Pn = structure(c(1, 
    -5.4830714621183e-18, 1.21812129054869e-17, -5.48307146211831e-18, 
    -3.31423141286073e-17, -1.84889274661175e-32, 1.21812129054869e-17, 
    -3.75958688714994e-17, -5.56124814802562e-17), .Dim = c(3L, 
    3L))), x = structure(c(322, 400, 650, 888, 1128, 1694, 
2036, 2502, 3089, 3858, 4636, 5883, 7375, 9172, 10149, 12462, 
15113, 17660, 21157, 24747, 27980, 31506, 35713, 41035, 47021, 
53578, 59138, 63919), .Tsp = c(1, 28, 1), class = "ts")), class = "Arima"), 
level = c(80, 95), mean = structure(c(68571.1220751691, 73201.9225591844, 
77829.1955946478, 82455.8850482763, 87082.4779540027, 91709.0548868236, 
96335.6291770837, 100962.203030158, 105588.776810904, 110215.350579684, 
114841.924346485, 119468.498112958, 124095.071879377, 128721.645645786, 
133348.219412195, 137974.793178603, 142601.366945011, 147227.940711419, 
151854.514477827, 156481.088244235, 161107.662010643, 165734.235777051, 
170360.80954346, 174987.383309868, 179613.957076276, 184240.530842684, 
188867.104609092, 193493.6783755, 198120.252141908, 202746.825908316, 
207373.399674724, 211999.973441132, 216626.54720754, 221253.120973948, 
225879.694740356, 230506.268506765, 235132.842273173, 239759.416039581, 
244385.989805989, 249012.563572397, 253639.137338805, 258265.711105213, 
262892.284871621, 267518.858638029, 272145.432404437, 276772.006170845, 
281398.579937253, 286025.153703662, 290651.72747007, 295278.301236478, 
299904.875002886, 304531.448769294, 309158.022535702, 313784.59630211, 
318411.170068518, 323037.743834926, 327664.317601334, 332290.891367742, 
336917.46513415, 341544.038900558), .Tsp = c(29, 88, 1), class = "ts"), 
lower = structure(c(67852.5693904542, 71488.0378850631, 74869.4056219101, 
78042.7559156995, 81035.3037876344, 83865.5016552685, 86546.988586515, 
89090.4113186268, 91504.3946218833, 93796.1160212266, 95971.6728237902, 
98036.3298321095, 99994.6937502293, 101850.840164951, 103608.408563905, 
105270.675078771, 106840.60926587, 108320.919172912, 109714.087632186, 
111022.401864165, 112247.977899771, 113392.780933102, 114458.642437768, 
115447.274680314, 116360.283118863, 117199.177067588, 117965.378927058, 
118660.232219392, 119285.008620154, 119840.914142592, 120329.094601246, 
120750.640459457, 121106.591147333, 121397.938922313, 121625.632332819, 
121790.579335963, 121893.650112513, 121935.679615911, 121917.46988679, 
121839.792160025, 121703.388787634, 121508.974997728, 121257.240507039, 
120948.851002351, 120584.449504222, 120164.657624752, 119690.076729762, 
119161.289014511, 118578.858501069, 117943.331964511, 117255.239794357, 
116515.096796942, 115723.402943843, 114880.644070922, 113987.29253211, 
113043.807811626, 112050.637097962, 111008.215822666, 109916.968166633, 
108777.307536393, 67472.1905761175, 70580.7621429779, 73302.5874546909, 
75706.5864702675, 77834.1231526988, 79713.3753855171, 81365.1952663977, 
82805.8644073931, 84048.5730632326, 85104.2982790952, 85982.3650762524, 
86690.8252744766, 87236.7242194817, 87626.2949833746, 87865.1036821527, 
87958.1607268483, 87910.0076619409, 87724.7860890043, 87406.2931723477, 
86958.0269138267, 86383.2235034666, 85684.8884462828, 84865.8227394482, 
83928.6450686659, 82875.8107702521, 81709.6281410368, 80432.2725549711, 
79045.7987518185, 77552.151591525, 75953.1755121868, 74250.6228859222, 
72446.1614324952, 70541.3808230744, 68537.798584461, 66436.8653962784, 
64239.9698590982, 61948.4427995644, 59563.561168772, 57086.5515820169, 
54518.5935412548, 51860.8223759273, 49114.3319330342, 46280.1770432903, 
43359.3757867774, 40352.9115785747, 37261.7350923526, 34086.7660377659, 
30828.8948056289, 27488.983993257, 24067.8698209688, 20566.3634495346, 
16985.2522073028, 13325.3007348137, 9587.25205390016, 5771.82856756041, 
1879.73299626436, -2088.35074420535, -6131.75671876397, -10249.8361987147, 
-14441.9569333302), .Dim = c(60L, 2L), .Dimnames = list(NULL, 
    c("80%", "95%")), .Tsp = c(29, 88, 1), class = c("mts", 
"ts", "matrix")), upper = structure(c(69289.674759884, 74915.8072333057, 
80788.9855673855, 86869.0141808532, 93129.6521203709, 99552.6081183786, 
106124.269767652, 112833.994741689, 119673.158999925, 126634.585138142, 
133712.175869179, 140900.666393806, 148195.450008524, 155592.451126622, 
163088.030260485, 170678.911278435, 178362.124624152, 186134.962249926, 
193994.941323469, 201939.774624305, 209967.346121516, 218075.690621001, 
226262.976649151, 234527.491939421, 242867.631033688, 251281.88461778, 
259768.830291125, 268327.124531608, 276955.495663662, 285652.73767404, 
294417.704748202, 303249.306422807, 312146.503267748, 321108.303025584, 
330133.757147894, 339221.957677567, 348372.034433833, 357583.15246325, 
366854.509725187, 376185.334984769, 385574.885889976, 395022.447212698, 
404527.329236203, 414088.866273707, 423706.415304653, 433379.354716939, 
443107.083144745, 452889.018392812, 462724.59643907, 472613.270508444, 
482554.510211415, 492547.800741645, 502592.64212756, 512688.548533298, 
522835.047604926, 533031.679858227, 543277.998104707, 553573.566912819, 
563917.962101668, 574310.770264724, 69670.0535742206, 75823.0829753909, 
82355.8037346047, 89205.1836262851, 96330.8327553065, 103704.73438813, 
111306.06308777, 119118.541652923, 127128.980558576, 135326.402880273, 
143701.483616717, 152246.170951439, 160953.419539271, 169816.996308198, 
178831.335142237, 187991.425630358, 197292.726228081, 206731.095333834, 
216302.735783307, 226004.149574644, 235832.10051782, 245783.58310782, 
255855.796347471, 266046.121551069, 276352.103382299, 286771.433544331, 
297301.936663213, 307941.557999181, 318688.352692291, 329540.476304445, 
340496.176463526, 351553.785449769, 362711.713592006, 373968.443363436, 
385322.524084435, 396772.567154431, 408317.241746781, 419955.270910389, 
431685.428029961, 443506.533603539, 455417.452301683, 467417.090277392, 
479504.392699952, 491678.341489281, 503937.9532303, 516282.277249338, 
528710.393836741, 541221.412601694, 553814.470946882, 566488.732651987, 
579243.386556237, 592077.645331285, 604990.74433659, 617981.94055032, 
631050.511569476, 644195.754673588, 657416.985946874, 670713.539454249, 
684084.766467015, 697530.034734447), .Dim = c(60L, 2L), .Dimnames = list(
    NULL, c("80%", "95%")), .Tsp = c(29, 88, 1), class = c("mts", 
"ts", "matrix")), x = structure(c(322, 400, 650, 888, 1128, 
1694, 2036, 2502, 3089, 3858, 4636, 5883, 7375, 9172, 10149, 
12462, 15113, 17660, 21157, 24747, 27980, 31506, 35713, 41035, 
47021, 53578, 59138, 63919), .Tsp = c(1, 28, 1), class = "ts"), 
series = "corona_total$Total_Cases", fitted = structure(c(321.855997237055, 
400.257594259049, 480.37007586837, 928.455716409227, 1124.01471745929, 
1368.33088042319, 2313.93350897932, 2340.94139260317, 2988.51458623753, 
3696.01826560275, 4657.11011850993, 5415.48896190434, 7207.59145923711, 
8907.53285184028, 11019.4592645359, 10990.3390264937, 14996.0281226882, 
17819.9187915184, 20189.7942179943, 24811.1682010133, 28352.3859396781, 
31153.9378444613, 35080.4739819968, 40032.6647840948, 46541.4658359262, 
53116.8523004977, 60229.4663608196, 64533.0561090418), .Tsp = c(1, 
28, 1), class = "ts"), residuals = structure(c(0.144002762945477, 
-0.257594259049227, 169.62992413163, -40.455716409227, 3.98528254071288, 
325.669119576814, -277.933508979317, 161.058607396831, 100.485413762468, 
161.981734397248, -21.1101185099251, 467.511038095663, 167.408540762885, 
264.467148159716, -870.459264535865, 1471.66097350626, 116.971877311758, 
-159.918791518434, 967.205782005673, -64.1682010133445, -372.385939678148, 
352.062155538701, 632.526018003249, 1002.33521590517, 479.534164073812, 
461.147699502253, -1091.4663608196, -614.056109041783), .Tsp = c(1, 
28, 1), class = "ts")), class = "forecast")

Это код, который я использовал для построения графика (игнорируйте пунктир экспоненциальная кривая):

plot(forecast, shaded = TRUE, shadecols=NULL, lambda = NULL, col = 1, fcol = 4, pi.col=1, 
     pi.lty=2, ylim = NULL, main = "Out-of-Sample Forecast", ylab = "Number of Cases", 
     xlab = "Days (since 23/03/2020)") + abline(v = 28:29, col= "#FF000033", lty=1, lwd=5)

Вывод:

Может кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 24 марта 2020

Я не смог загрузить ваш объект в моем сеансе R, поэтому я предполагаю, что ваш график работает как обычный.

У вас есть 2 варианта.

  1. Либо вы устанавливаете options(scipen = 10) (или какое-то высокое значение), что является быстрым решением, но если вам нужны одни графики с научной нотацией c, а другие без одной и той же графики окно, это не будет работать.

  2. Вы сами определяете ось в нужном вам формате. Вы можете использовать axTicks(2), чтобы получить положение тиков по умолчанию, а затем отформатировать метки так, как вам нужно.

Я рекомендую вариант 2. Вот краткий пример:

x <- seq(1,10, l = 100)
y <- x*1e5

par(mfrow = c(1,2))

plot(x, y, main = "custom axis", yaxt = "n")
ticks <- axTicks(2) # get axis ticks
axis(2, at = ticks, labels = formatC(ticks, format = 'd')) # make axis

plot(x, y, main = "default axis")

Выходы:

enter image description here

Другие возможные варианты можно посмотреть в ответах на этот пост

...