From your answers, I synthesized a ggplot ACF / PACF plotting method :
require(zoo) require(tseries) require(ggplot2) require(cowplot) ts= zoo(data[[2]]) # data[[2]] because my time series data was the second column # Plot ACP / ACF with IC # How to compute IC for ACF and PACF : # https://stats.stackexchange.com/questions/211628/how-is-the-confidence-interval-calculated-for-the-acf-function ic_alpha= function(alpha, acf_res){ return(qnorm((1 + (1 - alpha))/2)/sqrt(acf_res$n.used)) } ggplot_acf_pacf= function(res_, lag, label, alpha= 0.05){ df_= with(res_, data.frame(lag, acf)) # IC alpha lim1= ic_alpha(alpha, res_) lim0= -lim1 ggplot(data = df_, mapping = aes(x = lag, y = acf)) + geom_hline(aes(yintercept = 0)) + geom_segment(mapping = aes(xend = lag, yend = 0)) + labs(y= label) + geom_hline(aes(yintercept = lim1), linetype = 2, color = 'blue') + geom_hline(aes(yintercept = lim0), linetype = 2, color = 'blue') } acf_ts= ggplot_acf_pacf(res_= acf(ts, plot= F) , 20 , label= "ACF") pacf_ts= ggplot_acf_pacf(res_= pacf(ts, plot= F) , 20 , label= "PACF") # Concat our plots acf_pacf= plot_grid(acf_ts, pacf_ts, ncol = 2, nrow = 1) acf_pacf
Results:

ggplot2wrapper for this: github.com/dewittpe/qwraps. Install withdevtools::install_github("dewittpe/qwraps").library(ggfortify) p1 <- autoplot(acf(AirPassengers, plot = FALSE), conf.int.fill = '#0000FF', conf.int.value = 0.8, conf.int.type = 'ma') print(p1) library(cowplot) ggdraw(switch_axis_position(p1, axis = 'xy', keep = 'xy'))