2013-05-09 4 views
6

के साथ मैन्युअल रूप से आत्मविश्वास अंतराल को छायांकन करना मैंने 95% आत्मविश्वास बैंड के साथ मैन्युअल रूप से जीवन प्रत्याशाओं का डेटा सेट बनाया है। मैं इन समय के पैमाने पर साजिश करता हूं लेकिन बैंड को बिंदीदार रेखाओं के बजाय छायांकित करना पसंद करूंगा। कोड दिखाया गया:ggplot2

p1 = ggplot() 
p2 = p1 + geom_line(aes(x=pl$Time, y=pl$menle), colour="blue") 
p3 = p2 + geom_line(aes(x=pl$Time, y=pl$menlelb), colour="blue", lty="dotted") 
p4 = p3 + geom_line(aes(x=pl$Time, y=pl$menleub), colour="blue", lty="dotted") 

क्या लाइनों की बजाय अंतराल को छाया करने का कोई आसान तरीका है ?? यदि मुझे कुछ आसान याद आ रहा है तो मैं पहले से माफी माँगता हूं लेकिन मुझे ऐसा करने का एक आसान तरीका इंगित करने के लिए कुछ भी नहीं मिला।

+4

उपयोग 'बजाय geom_ribbon'। – joran

+2

और कृपया दूसरों को अपने कोड का प्रयास करने के लिए डेटा प्रदान करें (या आर के साथ उपलब्ध डेटा का उपयोग करें)। – Arun

+1

ध्यान दें कि यदि आप ggplot में '$' का उपयोग कर रहे हैं, तो आप शायद इसे गलत कर रहे हैं - जिसे एडेज भी कहा जाता है: "ggplot2 को' $ 'की परवाह नहीं है, यह 'डेटा'' पर फ़ीड करता है। – baptiste

उत्तर

25

यदि आप अपना डेटा प्रदान करते हैं तो यह सहायक होगा, लेकिन मुझे लगता है कि निम्नलिखित के बाद आप निम्नलिखित हैं।

सबसे पहले, कुछ डमी डेटा बनाने:

##I presume the lb and ub are lower/upper bound 
pl = data.frame(Time = 0:10, menle = rnorm(11)) 
pl$menlelb = pl$menle -1 
pl$menleub = pl$menle +1 

फिर साजिश पैदा करते हैं। छायांकित क्षेत्र geom_ribbon का उपयोग कर बनाई गई है:

ggplot(pl, aes(Time)) + 
    geom_line(aes(y=menle), colour="blue") + 
    geom_ribbon(aes(ymin=menlelb, ymax=menleub), alpha=0.2) 

enter image description here

+0

यदि मैं geom_line (...) + geom_ribbon (...) के दो या दो से अधिक सेटों को प्लॉट करता हूं, लेकिन अलग y, ymin, ymax, मैं एक किंवदंती/लेबल कैसे जोड़ सकता हूं? – jf328

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