مؤامرة مبعثر المبعثر مع حجم نقطة مختلفة (في ص)

StackOverflow https://stackoverflow.com/questions/2593643

  •  25-09-2019
  •  | 
  •  

سؤال

لقد جئت للتو صليب هذا الرمز الجميل هذا يجعل هذه مؤامرة المصفوفة المبعثرة:

alt text
(مصدر: free.fr)

وأردت تنفيذها على متغيرات مقياس likret (الأعداد الصحيحة من 1 إلى 5) عن طريق جعل أحجام/ألوان النقطة (في المثلث السفلي) تختلف وفقًا لعدد الخيارات لهذا النوع (مثل تأثير الارتعاش الذي منحني ).

أي فكرة عن كيفية القيام بذلك على آلية التخطيط القاعدة؟

تحديث:

لقد صنعت الوظيفة التالية ، لكن لا أعرف كيف يكون حجم النقاط دائمًا "جيدة" ، ما رأيك؟

panel.smooth2 <- function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
                    cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) 
{
    require(reshape)
    z <- merge(data.frame(x,y), melt(table(x ,y)),sort =F)$value
    z <- z/ (4*max(z)) 

    symbols( x, y,  circles = z,#rep(0.1, length(x)), #sample(1:2, length(x), replace = T) ,
            inches=F, bg="blue", fg = bg, add = T)

    # points(x, y, pch = pch, col = col, bg = bg, cex = cex)
    ok <- is.finite(x) & is.finite(y)
    if (any(ok)) 
        lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), 
            col = col.smooth, ...)
}



a1 <- sample(1:5, 100, replace = T)
a2 <- sample(1:5, 100, replace = T)
a3 <- sample(1:5, 100, replace = T)
aa <- data.frame(a1,a2,a3)


pairs(aa , lower.panel=panel.smooth2)
هل كانت مفيدة؟

المحلول

يمكنك استخدام 'حرف او رمز"(مماثلة لخطوط الأساليب" ، "Abline" وآخرون)

ستمنحك هذه الطريقة تحكمًا دقيقًا في كل من حجم الرموز واللون في سطر واحد من التعليمات البرمجية.

باستخدام "الرموز" ، يمكنك ضبط حجم الرمز واللون والشكل. يتم تعيين الشكل والحجم عن طريق تمرير ناقل لحجم كل رمز وربطه إما بـ "الدوائر" أو "المربعات" أو "المستطيلات" أو "النجوم" أو "النجوم" = C (4 ، 3 ، 5 ، 1). يتم تعيين اللون مع "BG" و/أو "FG".

symbols( x, y, circles = circle_radii, inches=1/3, bg="blue", fg=NULL) 

إذا فهمت الجزء الثاني من سؤالك ، فأنت تريد أن تكون متأكدًا بشكل معقول من أن الوظيفة التي تستخدمها لتوسيع نطاق الرموز في مؤامرةك تفعل ذلك بطريقة ذات معنى. تعمل دالة "الرموز" (على سبيل المثال) نصف القطر من الدوائر المستندة إلى القيم في متغير "z" (أو بيانات البيانات ، إلخ) في السطر أدناه ، قمت بتعيين حجم الرمز الأقصى (نصف القطر) على أنه 1/3 بوصة-كل رمز باستثناء الأكبر لديه أ دائرة نصف قطرها بعض الكسر أصغر ، مقاسًا بنسبة قيمة نقطة DAT على أكبر قيمة. من هذا واحد يتناسب مع هل هذا اختيار جيد؟ لا أعرف-يبدو لي أن القطر أو محيطه على وجه الخصوص قد يكون أفضل. في أي حال ، هذا تغيير تافهة. باختصار ، فإن "الرموز" التي تم تمريرها "دوائر" التي تم تمريرها في ويل تقليص نصف قطر الرموز بما يتناسب مع الإحداثيات "Z"-ربما يكون أكثر ملاءمة للمتغيرات المستمرة. أود استخدام اللون ('BG') للمتغيرات/العوامل المنفصلة.

تتمثل إحدى الطرق لاستخدام "الرموز" في استدعاء وظيفة المؤامرة الخاصة بك والتمرير في Type = 'n' والتي تنشئ كائن المؤامرة ولكنها تقمع رسم الرموز بحيث يمكنك رسمها باستخدام وظيفة "الرموز" بعد ذلك.

لا أوصي بـ "CEX" لهذا الغرض. "CEX" هو عامل تحجيم لكل من حجم النص وحجم الرموز ، ولكن أي من هذين العنصرين المؤامرة يعتمدان عليهما عند مروره-إذا قمت بتعيينه عبر "PAR" ، فإنه يعمل على معظم النصوص الظهور على المؤامرة إذا قمت بتعيينها داخل وظيفة "المؤامرة" ، فإنها تؤثر على حجم الرموز.

نصائح أخرى

بالتأكيد ، استخدم فقط cex:

set.seed(42)
DF <- data.frame(x=1:10, y=rnorm(10)*10, z=runif(10)*3) 
with(DF, plot(x, y, cex=z))

مما يمنحك أحجام دائرة مختلفة. يمكن أن يكون اللون ببساطة بعدًا رابعًا.

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