كيفية تراكب مخططات الكثافة في ggplot2 (مع أمثلة)
يعد مخطط الكثافة طريقة مفيدة لتصور توزيع القيم في مجموعة البيانات.
في كثير من الأحيان قد ترغب في عرض مخططات الكثافة لعدة متغيرات في وقت واحد. لحسن الحظ، من السهل القيام بذلك باستخدام حزمة تصور البيانات ggplot2 في R باستخدام الصيغة التالية:
ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )
تتحكم وسيطة ألفا في عتامة كل مخطط كثافة. من المهم تعيين هذه القيمة أقل من 1 حتى تتمكن من رؤية كل مخطط كثافة عند تداخلها.
يوضح المثال التالي خطوة بخطوة كيفية استخدام بناء الجملة هذا عمليًا.
الخطوة 1: إنشاء البيانات
أولاً، لنقم بإنشاء مجموعة بيانات مزيفة تحتوي على ثلاثة متغيرات:
#make this example reproducible set. seeds (1) #createdata df <- data. frame (var1=rnorm(1000, mean=0, sd=1), var2=rnorm(1000, mean=0, sd=3), var3=rnorm(1000, mean=3, sd=2)) #view first six rows of data head(df) var1 var2 var3 1 -0.6264538 3.4048953 1.2277008 2 0.1836433 3.3357955 -0.8445098 3 -0.8356286 -2.6123329 6.2394015 4 1.5952808 0.6321948 4.0385398 5 0.3295078 0.2081869 2.8883001 6 -0.8204684 -4.9879466 4.3928352
الخطوة 2: تحويل البيانات من واسعة إلى طويلة
بعد ذلك، نحتاج إلى تحويل البيانات من تنسيق واسع إلى تنسيق طويل لجعلها متوافقة مع ggplot2:
library (reshape) #convert from wide format to long format data <- melt(df) #view first six rows head(data) variable value 1 var1 -0.6264538 2 var1 0.1836433 3 var1 -0.8356286 4 var1 1.5952808 5 var1 0.3295078 6 var1 -0.8204684
الخطوة 3: إنشاء مخططات الكثافة المتداخلة
أخيرًا، يمكننا إنشاء مخططات الكثافة المتراكبة:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .25 )
لا تتردد في ضبط قيمة ألفا لجعل مخططات الكثافة أكثر أو أقل شفافية.
على سبيل المثال، هذا ما ستبدو عليه المخططات إذا قمنا بزيادة قيمة ألفا:
library (ggplot2) #create overlaying density plots ggplot(data, aes (x=value, fill=variable)) + geom_density(alpha= .7 )
مصادر إضافية
كيفية إنشاء مخطط جانت في R باستخدام ggplot2
كيفية إنشاء boxplot مجمعة في R باستخدام ggplot2
كيفية إنشاء مخططات جنبًا إلى جنب في R باستخدام ggplot2