|
2 weeks ago | |
---|---|---|
.. | ||
solution | 3 weeks ago | |
README.md | 2 weeks ago | |
assignment.md | 3 weeks ago | |
notebook.ipynb | 3 weeks ago |
README.md
تصور الكميات
![]() |
---|
تصور الكميات - رسم توضيحي بواسطة @nitya |
في هذه الدرس، ستتعلم كيفية استخدام أحد مكتبات بايثون المتوفرة لإنشاء تصورات مثيرة حول مفهوم الكمية. باستخدام مجموعة بيانات نظيفة عن الطيور في مينيسوتا، يمكنك اكتشاف العديد من الحقائق المثيرة عن الحياة البرية المحلية.
اختبار ما قبل المحاضرة
مراقبة امتداد الأجنحة باستخدام Matplotlib
مكتبة ممتازة لإنشاء الرسوم البيانية والمخططات البسيطة والمتقدمة هي Matplotlib. بشكل عام، عملية رسم البيانات باستخدام هذه المكتبات تشمل تحديد أجزاء إطار البيانات التي تريد استهدافها، إجراء أي تحويلات ضرورية على البيانات، تعيين قيم المحورين x و y، اختيار نوع الرسم البياني الذي تريد عرضه، ثم عرض الرسم البياني. تقدم Matplotlib مجموعة كبيرة من التصورات، ولكن في هذا الدرس، سنركز على الأنواع الأكثر ملاءمة لتصور الكميات: الرسوم البيانية الخطية، الرسوم المبعثرة، والمخططات الشريطية.
✅ استخدم الرسم البياني الأنسب لهيكل بياناتك والقصة التي تريد سردها.
- لتحليل الاتجاهات عبر الزمن: خطي
- لمقارنة القيم: شريطي، عمودي، دائري، مبعثر
- لإظهار كيفية ارتباط الأجزاء بالكل: دائري
- لإظهار توزيع البيانات: مبعثر، شريطي
- لإظهار الاتجاهات: خطي، عمودي
- لإظهار العلاقات بين القيم: خطي، مبعثر، فقاعي
إذا كانت لديك مجموعة بيانات وتحتاج إلى اكتشاف مقدار عنصر معين، فإن إحدى المهام الأولى التي ستقوم بها هي فحص قيمه.
✅ هناك أوراق غش ممتازة متوفرة لـ Matplotlib هنا.
إنشاء مخطط خطي لقيم امتداد أجنحة الطيور
افتح ملف notebook.ipynb
الموجود في جذر مجلد هذا الدرس وأضف خلية.
ملاحظة: البيانات مخزنة في جذر هذا المستودع في مجلد
/data
.
import pandas as pd
import matplotlib.pyplot as plt
birds = pd.read_csv('../../data/birds.csv')
birds.head()
هذه البيانات عبارة عن مزيج من النصوص والأرقام:
الاسم | الاسم العلمي | الفئة | الرتبة | العائلة | الجنس | حالة الحفظ | الطول الأدنى | الطول الأقصى | الكتلة الأدنى | الكتلة الأقصى | امتداد الأجنحة الأدنى | امتداد الأجنحة الأقصى | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | بطة الصفير ذات البطن الأسود | Dendrocygna autumnalis | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 |
1 | بطة الصفير ذات اللون البني | Dendrocygna bicolor | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 |
2 | إوزة الثلج | Anser caerulescens | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 |
3 | إوزة روس | Anser rossii | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 |
4 | الإوزة البيضاء الكبيرة | Anser albifrons | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 |
لنبدأ برسم بعض البيانات الرقمية باستخدام مخطط خطي أساسي. لنفترض أنك تريد عرض امتداد الأجنحة الأقصى لهذه الطيور المثيرة.
wingspan = birds['MaxWingspan']
wingspan.plot()
ما الذي تلاحظه فورًا؟ يبدو أن هناك على الأقل نقطة شاذة - هذا امتداد أجنحة كبير جدًا! امتداد أجنحة يبلغ 2300 سنتيمتر يساوي 23 مترًا - هل هناك تيروصورات تجوب مينيسوتا؟ دعنا نتحقق.
بينما يمكنك إجراء فرز سريع في Excel للعثور على هذه النقاط الشاذة، والتي ربما تكون أخطاء مطبعية، استمر في عملية التصور من داخل الرسم البياني.
أضف تسميات إلى المحور x لتظهر أنواع الطيور المعنية:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.xticks(rotation=45)
x = birds['Name']
y = birds['MaxWingspan']
plt.plot(x, y)
plt.show()
حتى مع تدوير التسميات إلى 45 درجة، هناك الكثير منها لقراءتها. دعنا نجرب استراتيجية مختلفة: قم بتسمية النقاط الشاذة فقط وضع التسميات داخل الرسم البياني. يمكنك استخدام مخطط مبعثر لتوفير مساحة أكبر للتسمية:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
plt.plot(x, y, 'bo')
if birds['MaxWingspan'][i] > 500:
plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12)
plt.show()
ما الذي يحدث هنا؟ استخدمت tick_params
لإخفاء التسميات السفلية ثم أنشأت حلقة على مجموعة بيانات الطيور الخاصة بك. برسم الرسم البياني بنقاط زرقاء صغيرة باستخدام bo
، قمت بفحص أي طائر لديه امتداد أجنحة أقصى يزيد عن 500 وعرضت تسميته بجانب النقطة إذا كان كذلك. قمت بإزاحة التسميات قليلاً على المحور y (y * (1 - 0.05)
) واستخدمت اسم الطائر كتسمية.
ما الذي اكتشفته؟
تصفية البيانات
يبدو أن كل من النسر الأصلع والصقر البراري، رغم أنهما ربما طيور كبيرة جدًا، قد تم تصنيفهما بشكل خاطئ، مع إضافة 0
إضافي إلى امتداد أجنحتهما الأقصى. من غير المحتمل أن تقابل نسرًا أصلعًا بامتداد أجنحة يبلغ 25 مترًا، ولكن إذا حدث ذلك، يرجى إبلاغنا! دعنا ننشئ إطار بيانات جديدًا بدون هذين الطائرين الشاذين:
plt.title('Max Wingspan in Centimeters')
plt.ylabel('Wingspan (CM)')
plt.xlabel('Birds')
plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False)
for i in range(len(birds)):
x = birds['Name'][i]
y = birds['MaxWingspan'][i]
if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']:
plt.plot(x, y, 'bo')
plt.show()
بتصفية النقاط الشاذة، أصبحت بياناتك الآن أكثر تماسكًا وفهمًا.
الآن بعد أن أصبح لدينا مجموعة بيانات أنظف على الأقل من حيث امتداد الأجنحة، دعنا نكتشف المزيد عن هذه الطيور.
بينما يمكن للرسوم البيانية الخطية والمبعثرة عرض معلومات حول قيم البيانات وتوزيعها، نريد التفكير في القيم المتأصلة في هذه المجموعة البيانات. يمكنك إنشاء تصورات للإجابة على الأسئلة التالية حول الكمية:
كم عدد فئات الطيور الموجودة، وما هي أعدادها؟
كم عدد الطيور المنقرضة، المهددة، النادرة، أو الشائعة؟
كم عدد الطيور من مختلف الأجناس والرتب وفقًا لمصطلحات لينيوس؟
استكشاف المخططات الشريطية
المخططات الشريطية عملية عندما تحتاج إلى عرض تجميعات البيانات. دعنا نستكشف فئات الطيور الموجودة في هذه المجموعة البيانات لنرى أيها الأكثر شيوعًا من حيث العدد.
في ملف الـ notebook، أنشئ مخططًا شريطيًا أساسيًا.
✅ ملاحظة، يمكنك إما تصفية الطائرين الشاذين اللذين حددناهما في القسم السابق، تعديل الخطأ المطبعي في امتداد أجنحتهما، أو تركهما في هذه التمارين التي لا تعتمد على قيم امتداد الأجنحة.
إذا كنت تريد إنشاء مخطط شريطي، يمكنك اختيار البيانات التي تريد التركيز عليها. يمكن إنشاء المخططات الشريطية من البيانات الخام:
birds.plot(x='Category',
kind='bar',
stacked=True,
title='Birds of Minnesota')
هذا المخطط الشريطي، مع ذلك، غير قابل للقراءة لأنه يحتوي على الكثير من البيانات غير المجمعة. تحتاج إلى اختيار البيانات التي تريد رسمها فقط، لذا دعنا ننظر إلى طول الطيور بناءً على فئتها.
قم بتصفية بياناتك لتشمل فقط فئة الطيور.
✅ لاحظ أنك تستخدم Pandas لإدارة البيانات، ثم تترك Matplotlib لتقوم بالرسم.
نظرًا لوجود العديد من الفئات، يمكنك عرض هذا المخطط عموديًا وضبط ارتفاعه ليشمل جميع البيانات:
category_count = birds.value_counts(birds['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()
هذا المخطط الشريطي يظهر رؤية جيدة لعدد الطيور في كل فئة. في لمحة، ترى أن أكبر عدد من الطيور في هذه المنطقة ينتمي إلى فئة البط/الإوز/طيور الماء. مينيسوتا هي "أرض 10,000 بحيرة"، لذا هذا ليس مفاجئًا!
✅ جرب بعض العدود الأخرى على هذه المجموعة البيانات. هل هناك شيء يفاجئك؟
مقارنة البيانات
يمكنك تجربة مقارنات مختلفة للبيانات المجمعة عن طريق إنشاء محاور جديدة. جرب مقارنة الطول الأقصى للطائر بناءً على فئته:
maxlength = birds['MaxLength']
plt.barh(y=birds['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()
لا شيء مفاجئ هنا: الطيور الطنانة لديها أقل طول أقصى مقارنة بالبجع أو الإوز. من الجيد عندما تكون البيانات منطقية!
يمكنك إنشاء تصورات أكثر إثارة للاهتمام للمخططات الشريطية عن طريق تراكب البيانات. دعنا نضع الطول الأدنى والطول الأقصى على فئة الطائر المعطاة:
minLength = birds['MinLength']
maxLength = birds['MaxLength']
category = birds['Category']
plt.barh(category, maxLength)
plt.barh(category, minLength)
plt.show()
في هذا الرسم، يمكنك رؤية النطاق لكل فئة طائر للطول الأدنى والطول الأقصى. يمكنك القول بأمان أنه، بناءً على هذه البيانات، كلما كان الطائر أكبر، كان نطاق طوله أكبر. رائع!
🚀 تحدي
تقدم مجموعة بيانات الطيور هذه ثروة من المعلومات حول أنواع الطيور المختلفة داخل نظام بيئي معين. ابحث عبر الإنترنت لترى ما إذا كان يمكنك العثور على مجموعات بيانات أخرى متعلقة بالطيور. قم بممارسة إنشاء الرسوم البيانية والمخططات حول هذه الطيور لاكتشاف حقائق لم تكن تعرفها.
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
أعطتك هذه الدرس الأول بعض المعلومات حول كيفية استخدام Matplotlib لتصور الكميات. قم ببعض البحث حول طرق أخرى للعمل مع مجموعات البيانات للتصور. Plotly هي واحدة لن نغطيها في هذه الدروس، لذا ألقِ نظرة على ما يمكن أن تقدمه.
الواجب
الخطوط، الرسوم المبعثرة، والمخططات الشريطية
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.