Ve R Şekil pencerede birleştirmek temel ggplot grafik
Taban ve ggplot grafik bir arada olan bir şekil oluşturmak istiyorum. Aşağıdaki kodu rakam benim Bankası'ndaki R fonksiyonları komplo kullanarak gösterir:
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)")
Hangi üretir
Bu paneller en raporumu dahil etmek için yeterli görünüyor. Ancak, arsa özilinti gösteren geliştirilmelidir. Bu çok daha iyi ggplot kullanarak görünüyor:
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()
Ancak, ggplot tabanı grafik olarak görme, düzeni veya par(mfrow) ile ggplot birleştirebiliriz olamaz. Nasıl bir ggplot tarafından oluşturulan özilinti arsa temel grafik elde yerini alabilir miyim? Kılavuz kullanabilirim biliyorum.eğer benim rakamlar ama nasıl araziler biri ggplot oluşturulur eğer sadece bu yapıyorum ggplot ile yapılmış olsaydı düzenlemek?
CEVAP
GridBase paketi kullanarak, sadece 2 satır ekleyerek yapabilirsin. Eğer sadece anlamak ve master için ihtiyacınız olan kılavuz ile komik çizim yapmak istiyorsanız bencegörüş. Gerçekten ızgara paketi temel nesnedir.
vps <- baseViewports()
pushViewport(vps$figure) ## I am in the space of the autocorrelation plot
() BaseViewports işlevi, üç ızgara görüş bir listesini. Ben burada şekil görünüm penceresi Bir görünüm penceresi şekil bölgesiyle ilgilimevcutarsa.
Nasıl bir nihai çözüm görünüyor burada
library(gridBase)
par(mfrow=c(2, 2))
plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series")
plot(wt.t1, plot.cb=FALSE, plot.phase=FALSE,main = "Continuous wavelet transform",
ylab = "Period (hours)",xlab = "Time (hours)")
spectrum(y,method = "ar",main = "Spectral density function",
xlab = "Frequency (cycles per hour)",ylab = "Spectrum")
## the last one is the current plot
plot.new() ## suggested by @Josh
vps <- baseViewports()
pushViewport(vps$figure) ## I am in the space of the autocorrelation plot
vp1 <-plotViewport(c(1.8,1,0,1)) ## create new vp with margins, you play with this values
require(ggplot2)
acz <- acf(y, plot=F)
acd <- data.frame(lag=acz$lag, acf=acz$acf)
p <- ggplot(acd, aes(lag, acf)) geom_area(fill="grey")
geom_hline(yintercept=c(0.05, -0.05), linetype="dashed")
theme_bw() labs(title= "Autocorrelation\n")
## some setting in the title to get something near to the other plots
theme(plot.title = element_text(size = rel(1.4),face ='bold'))
print(p,vp = vp1) ## suggested by @bpatiste
sola Hizala iki grafik kenarları (ggpl...
Ayar grafik boyutu şekil...
Neden yok C# "türlerini birleştir...
Temel grafik çizim alanının dışında bi...
Özel görüntü ekleme geom_polygon ggplo...