Vorrei generare una figura che abbia una combinazione di grafica di base e ggplot. Il codice seguente mostra la mia figura utilizzando la base di funzioni di R tracciato:Combina grafica di base e ggplot nella finestra di figura 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)")
che genera
La maggior parte di questi pannelli sembrano sufficienti per me per includere nel mio rapporto. Tuttavia, la trama che mostra l'autocorrelazione deve essere migliorata. Questo sembra molto meglio utilizzando 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()
Tuttavia, visto che ggplot non è un grafico di base, non possiamo combinare ggplot con layout o pari (mfrow). Come posso sostituire il grafico di autocorrelazione generato dalla grafica di base con quello generato da ggplot? So che posso usare grid.arrange se tutte le mie figure sono state create con ggplot, ma come faccio se solo uno dei grafici viene generato in ggplot?
potrebbe essere quasi facile, e guardare più consistente, per usare 'polygon' con l'uscita di' ACF() 'per costruire una trama di base grafica che ricorda il' ggplot' uno. –
Grazie per la nostra risposta. Questa domanda è davvero finalizzata a imparare come combinare ggplot e grafica di base in una finestra di figura, mi rendo conto che potrebbero esserci modi più efficienti per generare la figura mostrata, ma per gli scopi futuri vorrei imparare il metodo specificato. – KatyB
controlla il pacchetto 'gridBase' ... –