boxplot() في R: كيفية إنشاء Boxقطع الأراضي في RStudio [أمثلة]

boxplot() في R

boxplot() في R يساعد على تصور توزيع البيانات حسب الربع واكتشاف وجود القيم المتطرفة. يمكنك استخدام الكائن الهندسي geom_boxplot() من مكتبة ggplot2 لرسم boxplot() في R.

سنستخدم مجموعة بيانات جودة الهواء لتقديم boxplot() في R باستخدام ggplot. تقيس مجموعة البيانات هذه جودة الهواء في نيويورك من مايو إلى سبتمبر 1973. تحتوي مجموعة البيانات على 154 ملاحظة. سنستخدم المتغيرات التالية:

  • الأوزون: متغير عددي
  • الرياح: متغير عددي
  • الشهر: من مايو إلى سبتمبر. متغير عددي

إنشاء Box قطعة

قبل أن تبدأ في إنشاء boxplot() الأول في R، تحتاج إلى معالجة البيانات على النحو التالي:

  • الخطوة 1: استيراد البيانات
  • الخطوة 2: إسقاط المتغيرات غير الضرورية
  • الخطوة 3: تحويل الشهر إلى مستوى العامل
  • الخطوة الرابعة: إنشاء متغير تصنيفي جديد يقسم الشهر إلى ثلاثة مستويات: البداية والوسطى والنهاية.
  • الخطوة 5: إزالة الملاحظات المفقودة

يتم تنفيذ كل هذه الخطوات باستخدام dplyr ومشغل خط الأنابيب %>%.

library(dplyr)
library(ggplot2)
# Step 1
data_air <- airquality % > %

#Step 2
select(-c(Solar.R, Temp)) % > %

#Step 3
mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), 
       
#Step 4 
day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))

من الممارسات الجيدة التحقق من بنية البيانات باستخدام الدالة glimpse().

glimpse(data_air)

الإخراج:

## Observations: 153
## Variables: 5
## $ Ozone   <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ...
## $ Wind    <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6...
## $ Month   <ord> May, May, May, May, May, May, May, May, May, May, May,...
## $ Day     <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,...
## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...

هناك NA في مجموعة البيانات، ومن الحكمة إزالتها.

# Step 5
data_air_nona <-data_air %>% na.omit()	

رسم بياني أساسي للصندوق

دعونا نرسم مخطط R boxplot() الأساسي مع توزيع الأوزون حسب الشهر.

# Store the graph
box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone))
# Add the geometric object box plot
box_plot +
    geom_boxplot()

شرح الكود

  • تخزين الرسم البياني لمزيد من الاستخدام
    • box_plot: يمكنك تخزين الرسم البياني في المتغير box_plot، وهو مفيد للاستخدام الإضافي أو تجنب سطور التعليمات البرمجية المعقدة للغاية
  • أضف الكائن الهندسي لـ R boxplot()
    • تقوم بتمرير مجموعة البيانات data_air_nona إلى ggplot boxplot.
    • داخل الوسيطة aes()، يمكنك إضافة المحور السيني والمحور الصادي.
    • تعني علامة + أنك تريد من R الاستمرار في قراءة الكود. وهذا يجعل الكود أكثر قابلية للقراءة عن طريق كسره.
    • استخدم geom_boxplot() لإنشاء رسم بياني للصندوق

الإخراج:

خفيف Box قطعة

تغيير جانب الرسم البياني

يمكنك قلب جانب الرسم البياني.

box_plot +
  geom_boxplot()+
  coord_flip()

شرح الكود

  • box_plot: يمكنك استخدام الرسم البياني الذي قمت بتخزينه. وهو يتجنب إعادة كتابة جميع الأكواد في كل مرة تقوم فيها بإضافة معلومات جديدة إلى الرسم البياني.
  • geom_boxplot(): إنشاء boxplots() في R
  • coord_flip(): اقلب جانب الرسم البياني

الإخراج:

تغيير جانب الرسم البياني

تغيير لون الخارجة

يمكنك تغيير لون وشكل وحجم القيم المتطرفة.

box_plot +
    geom_boxplot(outlier.colour = "red",
        outlier.shape = 2,
        outlier.size = 3) +
    theme_classic()

شرح الكود

  • outlier.colour=”red”: التحكم في لون القيم المتطرفة
  • outlier.shape=2: تغيير شكل القيمة الخارجية. 2 يشير إلى المثلث
  • outlier.size=3: تغيير حجم المثلث. الحجم يتناسب مع العدد.

الإخراج:

تغيير لون Outlier

إضافة إحصائية موجزة

يمكنك إضافة إحصائية ملخصة إلى R boxplot().

box_plot +
    geom_boxplot() +
    stat_summary(fun.y = mean,
        geom = "point",
        size = 3,
        color = "steelblue") +
    theme_classic()

شرح الكود

  • stat_summary() يسمح بإضافة ملخص إلى الرسم البياني الأفقي R
  • تتحكم الوسيطة fun.y في الإحصائيات التي يتم إرجاعها. سوف تستخدم يعني
  • ملاحظة: تتوفر إحصائيات أخرى مثل الحد الأدنى والحد الأقصى. يمكن عرض أكثر من إحصائية في نفس الرسم البياني
  • Geom = "نقطة": ارسم المتوسط ​​بنقطة
  • size=3: حجم النقطة
  • اللون =”steelblue”: لون النقاط

الإخراج:

إضافة إحصائية ملخصة

Box مؤامرة مع النقاط

في الرسم البياني الأفقي التالي R، أضف طبقات الرسم البياني النقطي. تمثل كل نقطة ملاحظة.

box_plot +
    geom_boxplot() +
    geom_dotplot(binaxis = 'y',
        dotsize = 1,
        stackdir = 'center') +
    theme_classic()

شرح الكود

  • Geom_dotplot() يسمح بإضافة نقطة إلى عرض السلة
  • binaxis='y': قم بتغيير موضع النقاط على طول المحور y. بشكل افتراضي، المحور س
  • dotsize=1: حجم النقاط
  • stackdir='center': طريقة تكديس النقاط: أربع قيم:
    • "أعلى" (افتراضي)،
    • "تحت"
    • "مركز"
    • "الكل المركزي"

الإخراج:

Box مؤامرة مع النقاط

التحكم الجمالي لل Box قطعة

تغيير لون الصندوق

يمكنك تغيير ألوان المجموعة.

ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
    geom_boxplot() +
    theme_classic()

شرح الكود

  • يتم التحكم في ألوان المجموعات في تعيين aes(). يمكنك استخدام color=Month لتغيير لون رسم المربع والشارب وفقًا للأشهر

الإخراج:

تغيير لون ال Box

Box مؤامرة مع مجموعات متعددة

من الممكن أيضًا إضافة مجموعات متعددة. يمكنك تصور الفرق في جودة الهواء وفقًا ليوم القياس.

ggplot(data_air_nona, aes(Month, Ozone)) +
    geom_boxplot(aes(fill = day_cat)) +
    theme_classic()

شرح الكود

  • يتحكم تعيين aes() للكائن الهندسي في المجموعات المراد عرضها (يجب أن يكون هذا المتغير عاملاً)
  • aes(fill= day_cat) يسمح بإنشاء ثلاثة مربعات لكل شهر في المحور x

الإخراج:

Box مؤامرة مع مجموعات متعددة

Box مؤامرة مع النقاط المتوترة

هناك طريقة أخرى لعرض النقطة وهي استخدام النقاط المتقطعة. إنها طريقة ملائمة لتصور النقاط باستخدام مخطط الصندوق للبيانات التصنيفية في متغير R.

تتجنب هذه الطريقة تداخل البيانات المنفصلة.

box_plot +
    geom_boxplot() +
    geom_jitter(shape = 15,
        color = "steelblue",
        position = position_jitter(width = 0.21)) +
    theme_classic()

شرح الكود

  • يضيف الدالة Geom_jitter()‎ القليل من الاضمحلال إلى كل نقطة.
  • الشكل=15 يغير شكل النقاط. 15 يمثل المربعات
  • اللون = "steelblue": تغيير لون النقطة
  • Position=position_jitter(width = 0.21): طريقة وضع النقاط المتداخلة. Position_jitter(width = 0.21) يعني أنك تقوم بتحريك النقاط بنسبة 20 بالمائة من المحور السيني. افتراضيا، 40 في المئة.

الإخراج:

Box مؤامرة مع النقاط المتوترة

يمكنك رؤية الفرق بين الرسم البياني الأول بطريقة الارتعاش والثاني بطريقة النقطة.

box_plot +
    geom_boxplot() +
    geom_point(shape = 5,
        color = "steelblue") +
    theme_classic()

Box مؤامرة مع النقاط المتوترة

حقق Box قطعة

من الميزات المثيرة للاهتمام في geom_boxplot() هي دالة رسم الصندوق المسنن في R. يضيق رسم الصندوق المسنن المربع حول الوسيط. الغرض الرئيسي من رسم الصندوق المسنن هو مقارنة أهمية الوسيط بين المجموعات. هناك أدلة قوية على أن المجموعتين لهما وسيطان مختلفان عندما لا تتداخل الشقوق. يتم حساب الشق على النحو التالي:

حقق Box قطعة

مع هو الربعي وعدد الملاحظات.

box_plot +
    geom_boxplot(notch = TRUE) +
    theme_classic()

شرح الكود

  • geom_boxplot(notch=TRUE): إنشاء رسم بياني أفقي مقسم إلى قطع R

الإخراج:

حقق Box قطعة

ملخص

يمكننا تلخيص الأنواع المختلفة من المخططات الصندوقية الأفقية R في الجدول أدناه:

الهدف رمز
رسم بياني أساسي للصندوق
ggplot(df, aes( x = x1, y =y)) + geom_boxplot()
اقلب الجانب
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip()
رسم تخطيطي لصندوق مسنن
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE)
Box مؤامرة مع النقاط المتوترة
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21))

تحقق أيضا: - دروس R للمبتدئين: تعلم لغة برمجة R

تلخيص هذه التدوينة بـ: