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_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: تغيير حجم المثلث. الحجم يتناسب مع العدد.
الإخراج:
إضافة إحصائية موجزة
يمكنك إضافة إحصائية ملخصة إلى 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 قطعة
تغيير لون الصندوق
يمكنك تغيير ألوان المجموعة.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) +
geom_boxplot() +
theme_classic()
شرح الكود
- يتم التحكم في ألوان المجموعات في تعيين aes(). يمكنك استخدام color=Month لتغيير لون رسم المربع والشارب وفقًا للأشهر
الإخراج:
Box مؤامرة مع مجموعات متعددة
من الممكن أيضًا إضافة مجموعات متعددة. يمكنك تصور الفرق في جودة الهواء وفقًا ليوم القياس.
ggplot(data_air_nona, aes(Month, Ozone)) +
geom_boxplot(aes(fill = day_cat)) +
theme_classic()
شرح الكود
- يتحكم تعيين aes() للكائن الهندسي في المجموعات المراد عرضها (يجب أن يكون هذا المتغير عاملاً)
- aes(fill= day_cat) يسمح بإنشاء ثلاثة مربعات لكل شهر في المحور x
الإخراج:
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_plot +
geom_boxplot() +
geom_point(shape = 5,
color = "steelblue") +
theme_classic()
حقق Box قطعة
من الميزات المثيرة للاهتمام في geom_boxplot() هي دالة رسم الصندوق المسنن في R. يضيق رسم الصندوق المسنن المربع حول الوسيط. الغرض الرئيسي من رسم الصندوق المسنن هو مقارنة أهمية الوسيط بين المجموعات. هناك أدلة قوية على أن المجموعتين لهما وسيطان مختلفان عندما لا تتداخل الشقوق. يتم حساب الشق على النحو التالي:
مع هو الربعي وعدد الملاحظات.
box_plot +
geom_boxplot(notch = TRUE) +
theme_classic()
شرح الكود
- geom_boxplot(notch=TRUE): إنشاء رسم بياني أفقي مقسم إلى قطع R
الإخراج:
ملخص
يمكننا تلخيص الأنواع المختلفة من المخططات الصندوقية الأفقية 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











