سؤال

**تحرير:** أنا آسف، لكن الوضع قد يكون أكثر تعقيدًا قليلاً مما أظهرته.ومع ذلك، يعمل كلا البرنامجين النصيين، على الرغم من أن الأول قد لا يكون واضحًا جدًا لمجموعة البيانات الكبيرة بسبب تداخل النقاط!شكرا جزيلا ساشا!

أود أولاً عرض أزواج المتغيرات المتعددة، ثم تركيب البيانات المحددة لنفس مجموعة البيانات.عادة، يمكن تحقيق التراكب باستخدام 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(), ، ولكن لا أعرف إذا كان يعمل حقا، وكيف.هل يمكن لشخص أن يقدم بعض الاقتراحات؟

هل كانت مفيدة؟

المحلول

انا افترض 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)

enter image description here

يحرر:

شيء آخر يمكنك القيام به في 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)

نصائح أخرى

lattice::splom يعمل بشكل جيد.يجب تعزيز فهرسة الألوان بمقدار 1 نظرًا لأن فهرسة R تعتمد على 1 بدلاً من الصفر ويتم إجبار المتجهات المنطقية على 0 و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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top