2012-10-24 10 views
6

çizgiler ve nokta araziler bir kombinasyon: - Y, alt ve üst güvengölgeleme belirli alan - Söz şu var baz R

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) 

Y üç değer vardır. Eksende iki aralık arasında gölgelendirmek istiyorum. Grafiğin geri kalanı sadece nokta olur. Hipotezlenmiş ürün grafiği benzer olmalıdır (tam olarak değil).

enter image description here

Nasıl iki aralıklarla arasında ben gölge ve üretim hattı arsa MYD $ xvar 650 280 690 ve 210 arasında söyleyebiliriz. Bu yazıya göre (shading within xy curve plot in R) bazı polygot uydurma yapmaya çalıştı, ancak başarılı değil. senin verilerle

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

Diğerleri için bazı süre noktaları için – SHRram

cevap

2

Benzer cevap:: Artık

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

, bir çizgi ve ek noktalar eklemek

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) 

verir: enter image description here

4

Bir problem MYD sadece 80 gözlem sahip olduğunu, ancak sadece (bir kez ters sırada olduğu gibi bir kez) polygon() içine iki defa x değişken yem ... 200 çizmek çalışıyoruz, o zaman y değişkeni (ilk olarak alt limit, sonra ters sırada üst limit). Bunları-plot yeniden zorunda kalacak, böylece

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

Ancak gölgeleme, bazı noktaları kapsayacak: Sonra gölgeleme var

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) 

DÜZENLEME: Aşağıdaki rfan x dayalı gölgede sorar indeksi değil, gölgelendirin ve gölgeli bölgeye bir çizgi ekleyin.

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

Sonra arsa biz gerekirse biz kolayca değiştirebilir bu endeks, dayalı: Bunun için, ilgili noktaların bir dizin (biz MYD $ xvar sıralandığını kullanın) ayıklamak için mantıklı: Stephan

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

teşekkür verilerinizi ve arsa hatlarını subsetine gerekebilir, gölgeli bölgedeki yvar için ben arsa hat sadece (model şekil bakınız) nasıl. Sınırı xvar'da (20'inci değil) 200 olarak ayarlayabilir miyiz, bu şekilde xvar değerine bağlı olarak belirli bir bölgeyi gölgelendirmek çok daha kolay olurdu – fprd

+0

@rfan: Cevabınızı sorunuza göre düzenledim. Bu yardımcı olur mu? –

+0

evet, bu kesinlikle ihtiyacım olan şey ... endeksi bulmak X kesinti noktalarından biraz zor – fprd