Combine os gráficos base e ggplot na janela da figura R

Eu gostaria de gerar uma figura que tenha uma combinação de gráficos de base e ggplot. O código a seguir mostra minha figura usando as funções de plotagem de base de R:

t <- c(1:(24*14)) 
P <- 24 
A <- 10 
y <- A*sin(2*pi*t/P)+20

par(mfrow=c(2,2))
plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series")
acf(y,main = "Autocorrelation",xlab = "Lag (hours)", ylab = "ACF")
spectrum(y,method = "ar",main = "Spectral density function", 
         xlab = "Frequency (cycles per hour)",ylab = "Spectrum")
require(biwavelet)
t1 <- cbind(t, y)
wt.t1=wt(t1)
plot(wt.t1, plot.cb=FALSE, plot.phase=FALSE,main = "Continuous wavelet transform",
     ylab = "Period (hours)",xlab = "Time (hours)")

Que gera

A maioria desses painéis parece suficiente para incluir no meu relatório. No entanto, o gráfico mostrando a autocorrelação precisa ser melhorado. Isso parece muito melhor usando o ggplot:

require(ggplot2)
acz <- acf(y, plot=F)
acd <- data.frame(lag=acz$lag, acf=acz$acf)
ggplot(acd, aes(lag, acf)) + geom_area(fill="grey") +
  geom_hline(yintercept=c(0.05, -0.05), linetype="dashed") +
  theme_bw()

No entanto, visto que ggplot não é um gráfico base, não podemos combinar ggplot com layout ou par (mfrow). Como eu poderia substituir o gráfico de autocorrelação gerado a partir do gráfico base com o gerado pelo ggplot? Eu sei que posso usar grid.arrange se todas as minhas figuras foram feitas com ggplot mas como faço isso se apenas um dos gráficos for gerado em ggplot?

questionAnswers(4)

yourAnswerToTheQuestion