2012-10-24 11 views
6

のラインと点プロットの組み合わせ: - Y、上下信頼シェーディング特定の領域 - 私が質問以下た基地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の3つの値を有します。私は2つの区間の間を陰にしたいと思います。残りのグラフはポイントに過ぎません。仮定された製品グラフは類似していなければなりません(正確ではありません)。

enter image description here

どのように2つの間隔の間に日陰や生産ラインプロットは、MYDます$ XVARに280に690から650と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()に二回x変数​​を養う(一度逆の順序で、そのまま1回)、次にy変数(最初は下限値をそのまま、次に上限値を逆順にします)。あなたがそれらをプロットし直す必要がありますので、

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) 

EDIT:以下rfanは、xに基づいて日陰に尋ねますインデックスではなく、陰影付きの領域に線を追加することができます。このために、それは、関連ポイント(私たちは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用Iプロットラインのみ(モデル図を参照してください)することができますか。 xvar(200番目の値ではない)の200で余裕を設定できますか?この方法で、xvarの値に基づいて特定の領域を陰影付けする方がはるかに簡単です – fprd

+0

@ rfan:私はあなたの質問に基づいて回答を編集しました。これは役に立ちますか? –

+0

はい、これは確かに私が必要とするものです...インデックスを見つけることはXカットオフポイント – fprd