2014-09-25 14 views
8

kullanarak tahmin ve güven aralığı verileri içeren bir zaman dizim var, bunları ggplot2 kullanarak eşzamanlı olarak çizmek istedim. Aşağıda koduna göre yapıyorum:Grafik görüntü Grafiklerdeki metinlerin tercümesi, ggplot2

set.seed(321) 
library(ggplot2) 
#create some dummy data similar to mine 

sample<-rnorm(350) 
forecast<-rnorm(24) 
upper<-forecast+2*sd(forecast) 
lower<-forecast-2*sd(forecast) 


## wrap data into a data.frame 
df1 = data.frame(time = seq(325,350,length=26), M = sample[325:350], isin = "observations") 
df2 = data.frame(time = seq(351,374,length=24), M = forecast , isin = "my_forecast") 
df3 = data.frame(time = seq(351,374,length=24), M = upper ,isin = "upper_bound") 
df4 = data.frame(time = seq(351,374,length=24), M = lower, isin = "lower_bound") 
df = rbind(df1, df2, df3, df4) 

## ggplot object 
ggplot(df, aes(x = time, y = M, color = isin)) + geom_line() 

enter image description here

nasıl bir renkte üst ve alt çizgileri katılabilir? ve ayrıca belirli renkleri tahmin ve örneklemeye nasıl ayarlayabilirim?

cevap

5

Kullanım scale_colour_manual:

ggplot(df, aes(x = time, y = M, color = isin)) + geom_line() + 
    scale_colour_manual(values=c(observations='blue', my_forecast='red', upper_bound='black', lower_bound='black')) 

enter image description here

düzenlemek

Bu @rnso cevap esinlenerek başka bir seçenek vardır.

ggplot(df1, aes(x = time, y = M)) + geom_line(colour='blue') + 
    geom_smooth(aes(x=time, y=M, ymax=upper_bound, ymin=lower_bound), 
       colour='red', data=df5, stat='identity') 

enter image description here

+0

Gerçekten dün seçenek gibi kullanılabilir

enter image description here

. Df5'in df2 olması gerektiğini, üst_bound'un üst ve alt_bound'un simüle edilmiş verilerim için daha düşük olması gerektiğini göz önünde bulundurun. Bir başkasının ilgilenebileceği için. Teşekkürler Matthew. – Uzg

+0

@rnso tarafından ilham edilen seçenek hakkında, gözlemler ve my_forecoast ile bir efsane eklemek istedim. Ggplot (df1, aes (x = time, y = M)) + geom_line (color = 'mavi') + geom_smooth (aes (x = zaman, y = M, ymax = upper_bound, ymin = alt_bound), kullanıyorum color = 'red', data = df5, stat = 'identity') + scale_colour_manual (değerler = c (gözlemler = 'mavi', my_forecast = 'kırmızı')). Bir efsane, herhangi bir yardım olmadan aynı arsa dislayed ... – Uzg

+0

yeni bir soru göndermek için en iyi. –

4

yararlı olabilir takiben:

ggplot() + geom_line(data=df1, aes(x = time, y = M, color = isin)) + stat_smooth(data=df2, aes(x = time, y = M, color = isin)) 

'yöntem' seçeneği de stat_smooth()

İlgili konular