3

I have the following graph made with plot. I basically plotted the outcome of an model. The problem, as you can see, is the y-axis. I want to rescale it so that it shows values as integers and not in scientific notation. I already tried with ylim = c(a,b) but it didn't work.

This is the data to plot:

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")

This is the code I used to make the plot (ignore the dotted exponential curve):

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)

Output:

Can anyone please help me with this?

Rollo99
  • 1,601
  • 7
  • 15
  • 2
    I do not seems to get the exact problem with the current plot. The Y axis looks fine to me. Can you provide an expected output or something similar to it? – massisenergy Mar 23 '20 at 19:31
  • @massisenergy I would like not to have the scientific notation, but integers. I guess it is displayed in that way as the difference between the starting value and the last observation is big – Rollo99 Mar 23 '20 at 19:41

1 Answers1

1

I couldn't load your object in my R session, so I'm assuming your plot works like a regular one.

You have 2 options.

  1. Either you set options(scipen = 10) (or some high value), which is a quick fix, but if you need some plots with scientific notation and others without on the same graphics window, this will not work.

  2. You define the axis yourself, with the format you need. You can use axTicks(2) to get the position of default ticks and then format the labels as you need.

I recommend option 2. Here's a quick example :

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")

Outputs :

enter image description here

You can take a look at other potential options in the answers to this post

RoB
  • 1,833
  • 11
  • 23