Ed_Gravy
Ed_Gravy

Reputation: 2033

R geom_forecast object not found

I want to create a forecasting plot via ggplot2. So, I have been trying to follow this example, however the desired output is not as intended, as I would like to have year on x-axis and AvgTMean on the y-axis`.

Purpose is the forecast the next 10 years.

How can I do this?

Data (AvgTMaxYear):

structure(list(year = 1980:2021, AvgTMean = c(24.2700686838937, 
23.8852956598276, 25.094446596092, 24.1561175050287, 24.157183605977, 
24.3047482638362, 24.7899738481466, 24.5756232655603, 24.5833086228592, 
24.7344695534483, 25.3094451071121, 25.2100615173707, 24.3651692293534, 
24.5423890611494, 25.2492166633908, 24.7005097837931, 24.2491591827443, 
25.0912281781322, 25.0779264303305, 24.403294248319, 24.4983991453592, 
24.4292324356466, 24.8179824927011, 24.7243948463075, 24.5086534543966, 
24.2818632071983, 24.4567195220259, 24.8402224356034, 24.6574465515086, 
24.5440715673563, 23.482670620977, 24.9979594684914, 24.5452453980747, 
24.9271462811494, 24.7443215819253, 25.8929839790805, 25.1801908261063, 
25.2079308058908, 25.0722425561207, 25.4554644289799, 25.4548979078736, 
25.0756772250287)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-42L))

Method 1:

library(tidyverse)
library(forecast)

# Convert to timeseries object
AvgTMaxYearTS = ts(AvgTMaxYear)

# Plot
autoplot(AvgTMaxYearTS) + geom_forecast()

Output:

enter image description here

Method 2:

# Using fortify.ts
p = ggplot(aes(x = year, y = AvgTMean), data = AvgTMaxYear)
p = p + geom_line()
p + geom_forecast()

Error:

Error in FUN(X[[i]], ...) : object 'AvgTMean' not found

Upvotes: 0

Views: 124

Answers (1)

Quinten
Quinten

Reputation: 41225

When I run your second method it runs like this:

library(ggplot2)
library(forecast)
p = ggplot(aes(x = year, y = AvgTMean), data = AvgTMaxYear)
p = p + geom_line()
p + geom_forecast()

Output:

enter image description here

Upvotes: 1

Related Questions