0

**編集:**申し訳ありませんが、状況は私が示したものよりも少し複雑になる可能性があります。ただし、両方のスクリプトが機能しますが、最初のスクリプトはポイントの重複により大規模なデータセットではあまり明確ではない可能性があります! どうもありがとうサシャ!

最初にいくつかの変数のペアを表示し、次に同じデータセットの選択したデータを重ね合わせたいと思います。通常、スーパーインポーズは次のように使用して実現できますpar(new=T)

h<-rnorm(nc)  # this variable was used for conditioning
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
pairs(m)
par(new=T)
pairs(m[h>0.7,],col="red")

ただ、そのようpar()な使い方では設定が効かないようです。

次に、おそらく格子ライブラリが役立つ可能性があります。splom()、しかし、それが本当に機能するかどうか、どのように機能するかはわかりません。誰かがいくつかの提案をすることができますか?

4

2 に答える 2

4

だと思いparisますpairsか?pairs関数には引数などはありません。addプロットには9つのパネルがあるため、おそらくそれほど簡単ではありません(単純に実行pointsすると、最後のパネルにプロットされます)。を使用して単一のプロットで必要なことを行うのはそれほど難しくありませんcol

nc <- 100
set.seed(1)
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)

cols <- ifelse(x>0.7,"red","black")
pairs(m,col=cols)

ここに画像の説明を入力

編集:

でできるもう 1 つのことは、pairs実際に各パネルで実行したい機能を設定することです。デフォルトでは ですがpoints、これを拡張していくつかの条件を含めることができます。

nc <- 100

X<-rnorm(nc)
Y<-rnorm(nc)
Z<-rnorm(nc)
m<-cbind(X,Y,Z)

panelfun <- function(x,y,foo=X,...){
    points(x[foo<0.7],y[foo<0.7],col="black",...)
    points(x[foo>0.7],y[foo>0.7],col="red",...)
}

pairs(m,panel=panelfun)

これにより、以前と同じ図が得られます(シードを設定しなかったため、異なる点があります)。単純にカラー ベクトルを作成する方が簡単ですが、パネルの機能を好きなだけ大きくすることができます。

また、...他の引数をpoints関数に渡すことができます。

pairs(m,panel=panelfun,pch=16)
于 2011-02-20T12:48:07.007 に答える
0

lattice::splom正常に動作します。R インデックスは 0 ベースではなく 1 ベースであり、論理ベクトルは 0 と 1 として強制されるため、カラー インデックスを 1 増やす必要があります。

library(lttice)
nc=100; h<-rnorm(nc)  
x<-rnorm(nc)
y<-rnorm(nc)
z<-rnorm(nc)
m<-cbind(x,y,z)
splom(m, col=c("blue", "red")[1+(h>0.7)])

ここに画像の説明を入力

于 2012-05-02T22:25:31.070 に答える