|
|
6 months ago | |
|---|---|---|
| .. | ||
| solution | 7 months ago | |
| README.md | 6 months ago | |
| assignment.md | 7 months ago | |
| notebook.ipynb | 7 months 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. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.








