Question

**Edit :**Je suis désolé, mais la situation pourrait être un peu plus complexe que ce que je l'ai montré.Cependant, vos deux scripts fonctionnent, même si le premier peut ne pas être aussi clair pour un grand ensemble de données en raison du chevauchement de points !Merci beaucoup Sacha!

Je voudrais d'abord montrer les paires de plusieurs variables, puis superposer les données sélectionnées du même ensemble de données.Habituellement, la superposition peut être réalisée en utilisant par(new=T) comme ça:

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")

Cependant, il semble que le par() le paramètre ne fonctionne pas pour une telle utilisation.

Ensuite, une bibliothèque de treillis pourrait probablement aider, par exemple. splom(), mais je ne sais pas si cela fonctionne vraiment, et comment.Quelqu'un pourrait-il donner quelques suggestions ?

Était-ce utile?

La solution

je suppose paris doit être pairs?Le pairs la fonction n'a pas de add argument ou autre, ce ne serait probablement pas si trivial puisque l'intrigue comporte 9 panneaux (faisant simplement points tracera dans le dernier panneau).mais ce n'est pas si difficile de faire ce que vous voulez dans une seule intrigue en utilisant 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)

enter image description here

Modifier:

Une autre chose que vous pouvez faire dans pairs consiste en fait à définir la fonction que vous souhaitez effectuer dans chaque panneau.Par défaut c'est points, mais vous pouvez étendre cela pour inclure certaines conditions :

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)

Cela donne la même image qu'avant (enfin des points différents car je n'ai pas mis de graine).Il serait plus facile de créer simplement le vecteur de couleur, mais vous pouvez rendre le panneau aussi grand que vous le souhaitez.

Également ... permettre à d'autres arguments d'être transmis au points fonction:

pairs(m,panel=panelfun,pch=16)

Autres conseils

lattice::splom fonctionne bien.L'indexation des couleurs doit être augmentée de 1 puisque l'indexation R est basée sur 1 plutôt que sur zéro et les vecteurs logiques sont contraints à 0 et 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)])

enter image description here

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top