r-help forum
Need some guidance. I need to create 20 plots and then combine them into one
graphic. Normally this isn't a problem for me except this time I'm using the
holts function to perform a TS forecast. So I though I'd just write a
function which take the country name and then passes the name through the
function, then I'd take the name output and recombine the individual plots
into one. Well its not working like I though it would work. Any suggestions
of how I might tackle this quandary? The problem is I chose to make
individual plotly plots using the plot_forecast {TSstudio} function Here is
a sample dataset and code.
library(dplyr)
library(forecast)
library(ggplot2)
library(TSstudio)
library(xts)
library(zoo)
# data prep
sample_data <- read_excel("~/NGA Telework/USSOUTHCOM/Data/sample.xlsx")
sample_data$date <- as.Date(sample_data$date, format = c("%Y-%m-%d"))
sample_xts <- as.xts(samplef[ , -2], order.by = sample$date)
sample_zoo <- fortify(sample_xts)
sample_zoo$total_cases <- as.numeric(as.factor(sample_zoo$total_cases))
# plots function
plots <- function(i){
cases <- filter(sample_data, location == i) %>% select(date, total_cases)
xts <- as.xts(cases[ , -1], order.by = cases$date)
xts <- na.locf(xts)
forecast <- holt(xts, damped = TRUE, h = 2, PI = 0.9)
i <- plot_forecast(forecast,
title = i,
Xtitle = "Date",
Ytitle = "Cases")
return(i)
}
# create individual plots
atg <- plots("Antigua and Barbuda") # Antigua and Barbuda
arg <- plots("Argentina") # Argentina
brb <- plots("Barbados") # Barbados
blz <- plots("Belize") # Belize
Sincerely
Jeff Reichman
(314) 457-1966
Creating and arranging multiply plots
2 messages · Jeff Reichman, Bert Gunter
I think you need to read about "faceting" in ggplot. This may necessitate modifying your data structure. ?layout may be an alternative approach. See also https://cran.r-project.org/web/packages/egg/vignettes/Ecosystem.html for a fuller exegesis. Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Wed, Jul 1, 2020 at 9:44 AM Jeff Reichman <reichmanj at sbcglobal.net> wrote:
r-help forum
Need some guidance. I need to create 20 plots and then combine them into
one
graphic. Normally this isn't a problem for me except this time I'm using
the
holts function to perform a TS forecast. So I though I'd just write a
function which take the country name and then passes the name through the
function, then I'd take the name output and recombine the individual plots
into one. Well its not working like I though it would work. Any suggestions
of how I might tackle this quandary? The problem is I chose to make
individual plotly plots using the plot_forecast {TSstudio} function Here is
a sample dataset and code.
library(dplyr)
library(forecast)
library(ggplot2)
library(TSstudio)
library(xts)
library(zoo)
# data prep
sample_data <- read_excel("~/NGA Telework/USSOUTHCOM/Data/sample.xlsx")
sample_data$date <- as.Date(sample_data$date, format = c("%Y-%m-%d"))
sample_xts <- as.xts(samplef[ , -2], order.by = sample$date)
sample_zoo <- fortify(sample_xts)
sample_zoo$total_cases <- as.numeric(as.factor(sample_zoo$total_cases))
# plots function
plots <- function(i){
cases <- filter(sample_data, location == i) %>% select(date,
total_cases)
xts <- as.xts(cases[ , -1], order.by = cases$date)
xts <- na.locf(xts)
forecast <- holt(xts, damped = TRUE, h = 2, PI = 0.9)
i <- plot_forecast(forecast,
title = i,
Xtitle = "Date",
Ytitle = "Cases")
return(i)
}
# create individual plots
atg <- plots("Antigua and Barbuda") # Antigua and Barbuda
arg <- plots("Argentina") # Argentina
brb <- plots("Barbados") # Barbados
blz <- plots("Belize") # Belize
Sincerely
Jeff Reichman
(314) 457-1966
______________________________________________ R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.