2012-09-14 10 views
19

मैं ggplot2 उपयोग करने के लिए एक साजिश के इस आर ग्राफिक के लिए इसी तरह का उत्पादन करने की कोशिश कर रहा है के तहत एक क्षेत्र छाया:कैसे एक वक्र का उपयोग ggplot2

xv<-seq(0,4,0.01) 
yv<-dnorm(xv,2,0.5) 
plot(xv,yv,type="l") 
polygon(c(xv[xv<=1.5],1.5),c(yv[xv<=1.5],yv[xv==0]),col="grey") 

यह जहाँ तक मैं ggplot2 के साथ मिल गया है है:

x<-seq(0.0,0.1699,0.0001) 
ytop<-dnorm(0.12,0.08,0.02) 
MyDF<-data.frame(x=x,y=dnorm(x,0.08,0.02)) 
p<-qplot(x=MyDF$x,y=MyDF$y,geom="line") 
p+geom_segment(aes(x=0.12,y=0,xend=0.12,yend=ytop)) 

मैं पूंछ क्षेत्र को x = 0.12 से आगे छाया करना चाहता हूं। मैं ggplot या qplot का उपयोग करके यह कैसे करूं?

व्यापक रूप से, कैसे एक वक्र के नीचे किसी भी सबसेट को छाया करता है, चाहे पूंछ हो या क्षेत्र को अलग-अलग क्षेत्रों में विभाजित करने वाली दो मनमानी रेखाओं के बीच?

किसी भी सलाह के लिए धन्यवाद।

उत्तर

14

छाया

#First subst the data and add the coordinates to make it shade to y = 0 
shade <- rbind(c(0.12,0), subset(MyDF, x > 0.12), c(MyDF[nrow(MyDF), "X"], 0)) 

#Then use this new data.frame with geom_polygon 
p + geom_segment(aes(x=0.12,y=0,xend=0.12,yend=ytop)) + 
    geom_polygon(data = shade, aes(x, y)) 

enter image description here

+0

जवाब भी किसी अन्य तरीके से मदद करता है के लिए क्षेत्र आप चाहते हैं के साथ एक बहुभुज बनाएं। मैं ggplot2 के मोड में नहीं सोच रहा था और एक स्पष्ट डेटा सबसेट बना रहा था। मैं इस काम को पूरी तरह से ग्राफिकल ऑब्जेक्ट पॉइंट व्यू से बनाने की कोशिश कर रहा था। –

+0

मुझे लगता है कि आपका मतलब है (अंतिम समापन कोष्ठक का स्थान नोट करें) ... छाया <- आरबीआईंड (सी (0.12,0), सबसेट (माईडीएफ, एक्स> 0.12), सी (माईडीएफ [एनआरओ (माईडीएफ), " एक्स "], 0)) –

+0

@ceilingcat आप सही हैं मैं जवाब संपादित करूंगा –

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