logo

مخطط الصندوق في بايثون باستخدام Matplotlib

ما هو مربع المؤامرة؟

الرسم الصندوقي هو وسيلة لتصور توزيع البيانات باستخدام مربع وبعض الخطوط الرأسية. ومن المعروف باسم مؤامرة الشعيرة. ويمكن توزيع البيانات بين خمسة نطاقات رئيسية وهي كما يلي:

katrina kaif
    الحد الأدنى: Q1-1.5 * معدل الذكاءالربع الأول(س1): النسبة المئوية الخامسة والعشرونالوسيط:المئوية الخمسين3rd quartile(س3): النسبة المئوية 75أقصى: س3+1.5* معدل الذكاء

هنا يمثل IQR النطاق الربيعي والذي يبدأ من الربع الأول (Q1) وينتهي عند الربع الثالث (Q3).

تصور مؤامرة مربع

مخطط الصندوق في بايثون باستخدام Matplotlib

في مخطط الصندوق، تسمى تلك النقاط التي تقع خارج النطاق بالقيم المتطرفة. يمكننا إنشاء مخطط مربع للبيانات لتحديد ما يلي:

  • عدد القيم المتطرفة في مجموعة البيانات
  • هل البيانات منحرفة أم لا؟
  • نطاق البيانات

يُطلق على نطاق البيانات من الحد الأدنى إلى الحد الأقصى اسم الحد الطولي. في Python، سوف نستخدم وحدة pyplot الخاصة بوحدة matplotlib، والتي تحتوي على وظيفة تحمل في ثناياه عوامل تسمى boxplot() والتي يمكنها إنشاء مخطط مربع لأي مجموعة بيانات.

بناء الجملة:

 matplotlib.pyplot.boxplot(data,notch=none,vert=none,patch_artist,widths=none) 

في الدالة boxplot()، لدينا الكثير من السمات التي يمكن استخدامها لإنشاء مخطط مربع أكثر جاذبية وإبهارًا لمجموعة البيانات.

    بيانات: يجب أن تكون البيانات عبارة عن مصفوفة أو سلسلة من المصفوفات التي سيتم رسمها.درجة: تقبل هذه المعلمة القيم المنطقية فقط، سواء كانت صحيحة أو خاطئة.أخضر: تقبل هذه السمة قيمة منطقية. إذا تم ضبطه على صحيح، فسيكون الرسم البياني عموديًا. وإلا فإنه سيكون أفقيا.موضع: يقبل مجموعة الأعداد الصحيحة التي تحدد موضع الصندوق.الاعراض: يقبل مجموعة الأعداد الصحيحة التي تحدد عرض الصندوق.patch_artist: تقبل هذه المعلمة القيم المنطقية، سواء كانت صحيحة أو خاطئة، وهي معلمة اختيارية.تسميات: يقبل هذا السلاسل التي تحدد التسميات لكل نقطة بياناتمتوسط: يقبل قيمة منطقية، وهو اختياري.طلب: يقوم بتعيين ترتيب boxplot.bootstrap: يقبل القيمة الصحيحة التي تحدد نطاق boxplot المحزز.

مثال 1:

سنقوم بإنشاء مجموعة البيانات العشوائية للمصفوفة numpy وإنشاء مخطط الصندوق.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(15) dataSet = np.random.normal(100, 25, 200) print(dataSet) figure = plt.figure(figsize =(10, 8)) plt.boxplot(dataSet) plt.show() 

انتاج:

مخطط الصندوق في بايثون باستخدام Matplotlib

توضيح:

في الكود أعلاه، قمنا أولاً باستيراد مكتبات numpy وmatplotlib في الكود. ثم قمنا بإنشاء مجموعة بيانات عشوائية ورسمنا مخطط الصندوق باستخدام الدالة boxplot().

مثال 2:

يمكننا إنشاء مخططات مربعة متعددة في نفس الوقت في نفس الملف.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_axes([0, 0, 1, 1]) bp = ax.boxplot(dataSet) plt.show() 

انتاج:

مخطط الصندوق في بايثون باستخدام Matplotlib

توضيح:

في الكود أعلاه، لدينا أربع مجموعات بيانات تستخدم طرقًا عشوائية لـ numpy. ثم قمنا بإنشاء قائمة بمجموعات البيانات الأربع واستخدمنا هذه الوظيفة داخل boxplot().

مثال 3:

يمكننا استخدام بعض سمات الدالة boxplot() لتخصيص قطعة الأرض.

 import matplotlib.pyplot as plt import numpy as np np.random.seed(10) dataSet1 = np.random.normal(100, 10, 220) dataSet2 = np.random.normal(80, 20, 200) dataSet3 = np.random.normal(60, 35, 220) dataSet4 = np.random.normal(50, 40, 200) dataSet = [dataSet1, dataSet2, dataSet3, dataSet4] figure = plt.figure(figsize =(10, 7)) ax = figure.add_subplot(111) bp = ax.boxplot(dataSet, patch_artist = True,notch ='True', vert = 0) colors = ['#00FF00','#0F00FF', '#F00FF0','#FFFF0F'] for patch, color in zip(bp['boxes'], colors): patch.set_facecolor(color) for whisker in bp['whiskers']: whisker.set(color ='#8E008B',linewidth = 1.4,linestyle =':') for cap in bp['caps']: cap.set(color ='#8E008B',linewidth = 2.1) for median in bp['medians']: median.set(color ='blue',linewidth = 3) for flier in bp['fliers']: flier.set(marker ='D',color ='#d7298c',alpha = 0.6) ax.set_yticklabels(['dataSet1', 'dataSet2','dataSet3', 'dataSet4']) plt.title('Customized box plot using attributes') ax.get_xaxis().tick_bottom() ax.get_yaxis().tick_left() plt.show() 

انتاج:

مخطط الصندوق في بايثون باستخدام Matplotlib

توضيح:

في الكود أعلاه، قمنا بإنشاء مجموعات البيانات الأربع باستخدام وظائف عشوائية ووضعناها في قائمة. لقد قمنا الآن بتعيين الألوان المختلفة لكل مخطط مربع باستخدام قائمة الألوان وباستخدام الدالة set_facecolor().

لقد قمنا بتعيين عرض الخط لكل قطعة أرض مربعة وقمنا أيضًا بتعيين التسميات لكل قطعة أرض مربعة. لقد قمنا بتعيين السمة vert = 0، مما يعني أن جميع المخططات ستكون في الوضع الأفقي.