# # Only run this once
# library(devtools)
# devtools::install_github("tlcaputi/gtrendR")
# Run this every time
pacman::p_load(grid)
library("gtrendR")
ROOTPATH <- "C:/Users/tcapu/Google Drive/modules/gtrendR/docs/READMEcode"
setwd(ROOTPATH)
code_files <- dir("C:/Users/tcapu/Google Drive/modules/gtrendR/R", full.name = T)
for(f in code_files) source(f)
US_df <- run_arima(
df = read.csv("./input/handwashing_day.csv", header = T, stringsAsFactor = F), # Data from gtrends
interrupt = "2020-03-01", # Interruption point in your data
geo = "US", # geography you want to use
kalman = T # If True, uses Kalman method to impute time series
)
panA <- line_plot(
US_df, # data from run_arima
geo = 'US', # geography you wnat to use
## Create a vertical "interruption" line in your plot
interrupt = "2020-03-01", # Date of an interruption
linelabel = "COVID19",
## Plot arguments
beginplot = T, # Start date for the plot. If T, beginning of data
endplot = T, # End date for the plot. If T, end of data
title = NULL, # If NULL, no Title
xlab = "Date", # x axis label
lbreak = "3 month", # Space between x-axis tick marks
xfmt = date_format("%b %Y"), # Format of dates on x axis
ylab = "Query Fraction\n(Per 10 Million Searches)", # y axis label
lwd = 0.3, # Width of the line
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Searches line color
opcol = NA, # Color of point on top of spike
## Saving arguments
save = T, # If T, save plot
outfn = './output/panA.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
panB <- arima_plot(
US_df, ## data from run_arima
## Create a vertical "interruption" line in your plot
interrupt = "2020-03-01", # Date of an interruption
linelabel = "",
linelabelpos = 0.02, # Where the label goes near the interruption line
## Plot Arguments
beginplot = "2019-09-01", # Start date for the plot. If T, beginning of data
endplot = "2020-04-01", # End date for the plot. If T, end of data
title = NULL, # If NULL, no Title
xlab = "Date", # x axis label
lbreak = "1 month", # Space between x-axis tick marks
xfmt = date_format("%b %Y"), # Format of dates on x axis
ylab = "Query Fraction\n(Per 10 Million Searches)", # y axis label
lwd = 1, # Width of the line
label = T, # put increase in searches in plot
labsize = 0.8, # size of label
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Actual line color
locol = NA, # Expected line color
nucol = NA, # Excess polygon color
## Saving arguments
save = T, # If T, save plot
outfn = './output/panB.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
panC <- arima_ciplot(
US_df, ## data from run_arima
## Create a vertical "interruption" line in your plot
interrupt = "2020-03-01", # Date of an interruption
## Plot Arguments
beginplot = T, # Start date for the plot. If T, beginning of data
endplot = "2020-04-01", # End date for the plot. If T, end of data
title = NULL, # If NULL, no Title
xlab = "Date", # x axis label
lbreak = "1 week", # Space between x-axis tick marks
xfmt = date_format("%b-%d"), # Format of dates on x axis
ylab = "Greater than Expected (%)", # y axis label
lwd = 1, # Width of the line
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Actual color
nucol = NA, # Polygon color
## Saving arguments
save = T, # If T, save plot
outfn = './output/panC.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
panC <- panC +
scale_x_date(
limits = c(ymd("2020-03-01"), ymd("2020-04-01")),
date_breaks = "1 day",
labels = function(x) ifelse(as.numeric(x) %% 2 != 0, "", format(x, format = "%b %d"))
) +
theme(axis.text.x = element_text(angle = 45, vjust = 1.0, hjust = 1.0))
title <- ggdraw() +
draw_label(
"Google Searches for Hand Washing",
fontface = 'bold',
hjust = 0.5
) +
theme(
plot.margin = margin(0, 0, 0, 7)
)
fig <- plot_grid(panA, panB, panC, labels=c(LETTERS[1:3]), ncol=1, nrow=3, rel_heights=c(1,1,1))
fig <- plot_grid(title, fig, ncol = 1, rel_heights = c(0.1, 1))
save_plot("./output/Fig1.png", fig, base_width=6, base_height=10)
out <- state_pct_change(
df = read.csv("./input/handwashing_day.csv", header = T, stringsAsFactor = F), ## Data from gtrends
## You will need to decide on the timeframes for "before" and "after"
beginperiod = NA, # If not NA, this is the start of the "before" period
preperiod = 90, # If beginperiod is NA, this uses 90 days before the interruption
interrupt = "2020-03-01", # The date of the interruption
endperiod = "2020-04-01", # The after period is the interruption to the endperiod
## Scale Legend
scaletitle = "% Increase\nin Searches",
scalelimits = NULL, # Vector of length 2 with lower and upper limit
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
highcol = NA, # Color for highest percent change
midcol = NA, # Color for 0 percent change
lowcol = NA, # Color for lowest percent change
linecol = "gray", # Line between states
## Saving arguments
save = T, # If T, save plot
outfn = './output/panD.png', # Location to save plot
width = 6, # Width in inches
height = 3, # Height in inches
## Get data back from this function
return_df = T,
# If this is True...
bootstrap = T, ## Bootstrap confidence intervals for pct change
bootnum = 1000, # Number of bootstraps
alpha = 0.05 # Alpha value for CIs
)
panD <- out[[2]]
state_list <- state_arima(
data = read.csv("./input/handwashing_day.csv", header = T, stringsAsFactor = F), ## Data from gtrends
interrupt = "2020-03-01", ## Interruption point
begin = T, ## Beginning of the time period to use
end = T, ## End of the time period to use
kalman = T ## If True, Kalman impute NAs in the time series
)
panE <- state_arima_spaghetti(
state_list, # data from state_arima
interrupt = "2020-03-01", # should be the same as state_arima
## Plot Arguments
beginplot = "2020-03-01", # Start date for the plot. If T, beginning of data
endplot = "2020-04-03", # End date for the plot. If T, end of data
title = NULL, # If NULL, no Title
xlab = "Date", # x axis label
lbreak = "1 week", # Space between x-axis tick marks
xfmt = date_format("%b-%d"), # Format of dates on x axis
ylab = "Query Fraction\n(Per 10 Million Searches)", # y axis label
lwd = 1, # Width of the line
ylim = c(NA, NA), # y axis limts
## Spaghetti specific adjustments
spaghettialpha = 0.25, # How transparent do you want the spaghetti lines
states_with_labels = c("US"), ## Add labels to the end of these
states_to_exclude = c("IA"), ## Don't include these states
right_margin = 0.05, # margin on right for labels
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Color of US line
locol = NA, # Color of other lines
## Saving arguments
save = T, # If T, save plot
outfn = './output/panE.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
panE <- panE + coord_cartesian(ylim = c(-10, 40))
panF <- state_arima_pctdiff(
state_list, # data from state_arima
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
highcol = NA, # Color for highest percent change
midcol = NA, # Color for 0 percent change
lowcol = NA, # Color for lowest percent change
linecol = "gray", # Line between states
## Scale Arguments
scaletitle = "% Diff.\nin Searches",
## Saving arguments
save = T, # If T, save plot
outfn = './output/panF.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
title <- ggdraw() +
draw_label(
"Google Searches for Hand Washing",
fontface = 'bold',
hjust = 0.5
) +
theme(
plot.margin = margin(0, 0, 0, 7)
)
fig <- plot_grid(panD, panE, panF, labels=c(LETTERS[4:6]), ncol=1, nrow=3, rel_heights=c(1.1, 1, 1.1))
fig <- plot_grid(title, fig, ncol = 1, rel_heights = c(0.05, 1))
save_plot("./output/Fig2.png", fig, base_width=7, base_height=12)
multiterms <- multi_term_arima(
## A folder containing all of your gtrends data
input_dir = "./input",
## Which data to use
geo = "US", # Geography you want to use
terms_to_use = NA, # Terms you'd like to analyze. If NA then all terms
timeframe_to_use = NA, # Only analyze data with filenames that contain a certain timeframe. If NA then all timeframes
## Parameters of time periods
beginperiod = T, # Beginning of the before period, if T then beginning of data
preperiod = 90, # If beginperiod is logical, preperiod is the number of days before interrupt to include in before period
endperiod = T, # End of the end period, if T then end of data
interrupt = "2020-03-01", # Date for interruption, splitting before and after periods
## Analytical arguments
bootstrap = T, # Bootstrap CIs
bootnum = 1000, # Number of bootstraps
kalman = T # If T, impute with Kalman
)
panG <- multiterm_barplot(
multiterm_list = multiterms,
## Graphing Parameters
title = NULL, # If NULL, no Title
xlab = "Terms", # x axis label
label_df = NA, # Use a two-column dataframe to label the barplot x axis
ylab = "Greater than Expected (%)", # y axis label
space = 0.8, # space between bars
barlabels = F,
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Color of bars
## Saving arguments
save = T, # If T, save plot
outfn = './output/panG.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
panH <- multiterm_spaghetti(
multiterm_list = multiterms,
interrupt = "2020-03-01",
terms_to_use = NA,
## Plot Arguments
beginplot = "2020-01-01", # Start date for the plot. If T, beginning of data
endplot = "2020-04-03", # End date for the plot. If T, end of data
title = NULL, # If NULL, no Title
xlab = "Date", # x axis label
lbreak = "1 month", # Space between x-axis tick marks
xfmt = date_format("%b-%Y"), # Format of dates on x axis
ylab = "Query Fraction\n(Per 10 Million Searches)", # y axis label
lwd = 1, # Width of the line
ylim = c(NA, NA), # y axis limts
## Spaghetti specific adjustments
spaghettialpha = 0.6, # How transparent do you want the spaghetti lines
## Set a colorscheme
colorscheme = "blue", # Color schemes set in this package "red", 'blue" or "jamaim"
# ... customize any color using these
hicol = NA, # Color of US line
locol = NA, # Color of other lines
## Saving arguments
save = T, # If T, save plot
outfn = './output/panH.png', # Location to save plot
width = 6, # Width in inches
height = 3 # Height in inches
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.