Je voudrais générer un chiffre qui a une combinaison de base et ggplot graphiques. Le code suivant montre ma figure à l'aide de la base de traçage des fonctions 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)")
Qui génère
La plupart de ces panneaux look suffisant pour m'inclure dans mon rapport. Cependant, le montre le tracé de l'auto-corrélation doit être améliorée. C'est beaucoup mieux en utilisant 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()
Cependant, voyant que ggplot n'est pas un graphique de base, on ne peut pas combiner les ggplot avec mise en page ou par(mfrow). Comment pourrais-je remplacer l'autocorrélation de la parcelle généré à partir de la base de graphiques avec celui généré par ggplot? Je sais que je peux utiliser la grille.organiser si tous mes chiffres ont été rendus avec ggplot mais comment dois-je faire si un seul de ces parcelles sont générés dans ggplot?