2012-10-24 5 views
6

में लाइनों और बिंदु भूखंडों का एक संयोजन: - वाई, ऊपरी और निचले आत्मविश्वासछायांकन ग्राफ में निश्चित क्षेत्र - मैं सवाल निम्नलिखित है आधार आर

set.seed(1234) 
dis = seq(1, 800, 10) 
yvar = rnorm(length (dis), 50, 10) 
myd <- data.frame (xvar = dis, yvar = yvar, yvarL = 
yvar - rnorm (length (yvar),5, 1), yvarU = yvar + rnorm (length (yvar), 5, 1)) 
plot(myd$xvar,myd$yvar,pch=19,cex=.75,col="blue") 
points(myd$xvar,myd$yvarL,col="gray", pch=19,cex=.5) 
points(myd$xvar,myd$yvarU,col="gray", pch=19,cex=.5) 

वाई तीन मान होते हैं। मैं अक्ष में दो अंतराल के बीच छाया करना चाहता हूं। शेष ग्राफ केवल बिंदु होगा। अनुमानित उत्पाद ग्राफ समान होना चाहिए (बिल्कुल नहीं)।

enter image description here

मैं कैसे छाया और दो अंतराल के बीच उत्पादन लाइन साजिश MYD $ xvar में 650 280 करने के लिए 690 करने के लिए और 210 के बीच कह सकते हैं। मैंने इस पोस्ट (shading within xy curve plot in R) के आधार पर कुछ पॉलीगॉग फिटिंग करने की कोशिश की, लेकिन सफल नहीं हुआ। अपने डेटा के साथ

polygon(c(myd$xvar[1:200], myd$xvar[200:1]), c(myd$xvar[1:200], 
    myd$yvar[200:1]), col="gray") 
+1

आप – SHRram

उत्तर

2

इसी जवाब:

polygon(c(myd$xvar[index], myd$xvar[rev(index)]),c(myd$yvarL[index], 
myd$yvarU[rev(index)]), col="gray") 

अब, एक लाइन और अतिरिक्त बिंदु जोड़ने

plot(myd$xvar,myd$yvar,pch=19,cex=.75,col="blue") 
points(myd$xvar,myd$yvarL,col="gray", pch=19,cex=.5) 
points(myd$xvar,myd$yvarU,col="gray", pch=19,cex=.5) 
polygon(c(smyd$xvar[1:nrow(smyd)], smyd$xvar[nrow(smyd):1]), 
c(smyd$yvarL[1:nrow(smyd)], smyd$yvarU[nrow(smyd):1]), col="gray", border = NA) 
points(smyd$xvar,smyd$yvar,col="red", pch=19,cex=1.5) 
lines (smyd$xvar,smyd$yvar,col="red", pch=19,cex=1.5) 

polygon(c(smyd1$xvar[1:nrow(smyd1)], smyd1$xvar[nrow(smyd1):1]), 
c(smyd1$yvarL[1:nrow(smyd1)], smyd1$yvarU[nrow(smyd1):1]), col="yellow", border = NA) 
points(smyd1$xvar,smyd1$yvar,col="green4", pch=19,cex=1.5) 
lines (smyd1$xvar,smyd1$yvar,col="green4", pch=19,cex=1.5) 

आप देता है: enter image description here

4

एक समस्या यह है कि MYD केवल 80 टिप्पणियों है है, लेकिन आप 200 प्लॉट करने के लिए ... बस (एक बार के रूप में है, एक बार उलटे क्रम में) polygon() में दो बार एक्स चर को खिलाने के प्रयास कर रहे हैं, फिर वाई चर (पहले निचली सीमा के रूप में, फिर विपरीत क्रम में ऊपरी सीमा)।

polygon(c(myd$xvar[20:40], myd$xvar[40:20]),c(myd$yvarL[20:40], 
myd$yvarU[40:20]), col="gray") 

हालांकि, छायांकन, कुछ बिंदुओं को कवर किया जाएगा, ताकि आप फिर से साजिश करने के लिए उन्हें करना होगा: तो फिर आप अपने छायांकन है

points(myd$xvar,myd$yvar,pch=19,cex=.75,col="blue") 
points(myd$xvar,myd$yvarL,col="gray", pch=19,cex=.5) 
points(myd$xvar,myd$yvarU,col="gray", pch=19,cex=.5) 

संपादित करें: नीचे rfan पर एक्स आधारित छाया के लिए पूछता है इंडेक्स नहीं, और छायांकित क्षेत्र में एक लाइन जोड़ने के लिए समन्वय। इस के लिए, यह समझ में आता है प्रासंगिक अंक के एक सूचकांक (हम का उपयोग करें कि MYD $ xvar क्रमबद्ध किया जाता है) को निकालने के लिए:

index <- which(myd$xvar>=200 & myd$xvar<=400) 

हम तो यह सूचकांक है, जो हम आसानी से अगर हम की जरूरत है संशोधित कर सकते हैं के आधार पर साजिश: स्टीफ़न को

lines(myd$xvar[index],myd$yvar[index],pch=19,cex=.75,col="blue",type="o") 
points(myd$xvar,myd$yvarL,col="gray", pch=19,cex=.5) 
points(myd$xvar,myd$yvarU,col="gray", pch=19,cex=.5) 
+0

धन्यवाद दूसरों के लिए कुछ देर के अंक के लिए अपने डेटा और कथानकों सबसेट को आवश्यकता हो सकती है, कैसे छायांकित क्षेत्र में yvar के लिए मैं कथावस्तु केवल (कृपया मॉडल आंकड़ा देखें) कर सकते हैं। क्या हम xvar (20 वां मूल्य नहीं) में 200 से मार्जिन सेट कर सकते हैं, इस तरह xvar value – fprd

+0

@rfan के आधार पर कुछ क्षेत्र को छाया करना बहुत आसान होगा: मैंने आपके प्रश्न के आधार पर उत्तर संपादित किया। क्या यह मदद करता है? –

+0

हां, यह निश्चित रूप से मुझे क्या चाहिए ... एक्स इंडेक्स एक्स एक्स कटऑफ पॉइंट्स से कुछ मुश्किल है – fprd

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