2014-09-25 11 views
8

का उपयोग करके एक साथ पूर्वानुमान है, मेरे पास पूर्वानुमान और आत्मविश्वास अंतराल डेटा के साथ एक समय श्रृंखला है, मैं उन्हें ggplot2 का उपयोग करके एक साथ प्लॉट करना चाहता था। मैं नीचे दिए गए कोड से यह कर रहा हूँ:प्लॉट टाइम सीरीज़ और भविष्यवाणी 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

मैं कैसे एक रंग में ऊपरी और निचले लाइनों में शामिल हो सकते? और मैं विशिष्ट रंगों को पूर्वानुमान और नमूना के लिए कैसे सेट कर सकता हूं?

उत्तर

5

उपयोग 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

संपादित

यह एक और विकल्प, @rnso जवाब से प्रेरित है।

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

मैं वास्तव में अंतिम विकल्प की तरह इस्तेमाल किया जा सकता । ध्यान रखें कि df5 df2 होना चाहिए, ऊपरी_बाउंड ऊपरी होना चाहिए और मेरे अनुरूपित डेटा के लिए निचला_बाउंड कम होना चाहिए। सिर्फ इसलिए कि किसी और में दिलचस्पी हो सकती है। धन्यवाद मैथ्यू। – Uzg

+0

@rnso द्वारा प्रेरित विकल्प के बारे में, मैं अवलोकन और my_forecoast के साथ एक किंवदंती जोड़ना चाहता था। मैं ggplot (df1, aes (x = time, y = m) का उपयोग करता हूं) + geom_line (color = 'blue') + geom_smooth (aes (x = time, y = m, ymax = upper_bound, ymin = lower_bound), रंग = 'लाल', डेटा = डीएफ 5, स्टेट = 'पहचान') + scale_colour_manual (मान = सी (अवलोकन = 'नीला', my_forecast = 'लाल'))। यह एक किंवदंती के बिना एक ही साजिश को हटा दिया, किसी भी मदद ... – Uzg

+0

एक नया सवाल पोस्ट करने के लिए सबसे अच्छा। –

4

उपयोगी हो सकता है के बाद:

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

enter image description here

'विधि' विकल्प भी stat_smooth()

संबंधित मुद्दे