Kombinieren Sie Basis- und ggplot-Grafiken im R-Figurenfenster

Ich möchte eine Figur generieren, die eine Kombination aus Basis- und ggplot-Grafiken enthält. Der folgende Code zeigt meine Figur mit den Basisplotfunktionen von 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)")

Welches erzeugt

Die meisten dieser Panels scheinen für mich ausreichend zu sein, um sie in meinen Bericht aufzunehmen. Die Darstellung der Autokorrelation muss jedoch verbessert werden. Das sieht mit ggplot viel besser aus:

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()

Da ggplot jedoch keine Basisgrafik ist, können wir ggplot nicht mit layout oder par (mfrow) kombinieren. Wie kann ich das Autokorrelationsdiagramm, das aus den Basisgrafiken generiert wurde, durch das von ggplot generierte ersetzen? Ich weiß, dass ich grid.arrange verwenden kann, wenn alle meine Figuren mit ggplot erstellt wurden. Aber wie gehe ich vor, wenn nur eine der Zeichnungen mit ggplot erstellt wurde?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage