14 KiB
تصور النسب
![]() |
|---|
| تصور النسب - رسم توضيحي من @nitya |
في هذا الدرس، ستستخدم مجموعة بيانات تركز على الطبيعة لتصور النسب، مثل عدد الأنواع المختلفة من الفطريات الموجودة في مجموعة بيانات عن الفطر. دعونا نستكشف هذه الفطريات المثيرة للاهتمام باستخدام مجموعة بيانات مأخوذة من Audubon تحتوي على تفاصيل حول 23 نوعًا من الفطر ذو الخياشيم من عائلتي Agaricus وLepiota. ستجرب تصورات ممتعة مثل:
- مخططات دائرية 🥧
- مخططات دونات 🍩
- مخططات الوافل 🧇
💡 مشروع مثير للاهتمام يسمى Charticulator من Microsoft Research يقدم واجهة مجانية تعتمد على السحب والإفلات لإنشاء تصورات البيانات. في أحد دروسهم التعليمية، يستخدمون أيضًا مجموعة بيانات الفطر هذه! لذا يمكنك استكشاف البيانات وتعلم المكتبة في نفس الوقت: درس Charticulator.
اختبار ما بعد المحاضرة
تعرف على الفطر الخاص بك 🍄
الفطر مثير جدًا للاهتمام. دعونا نستورد مجموعة بيانات لدراسته:
import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()
يتم طباعة جدول يحتوي على بيانات رائعة للتحليل:
| الفئة | شكل القبعة | سطح القبعة | لون القبعة | كدمات | الرائحة | ارتباط الخياشيم | تباعد الخياشيم | حجم الخياشيم | لون الخياشيم | شكل الساق | جذر الساق | سطح الساق فوق الحلقة | سطح الساق تحت الحلقة | لون الساق فوق الحلقة | لون الساق تحت الحلقة | نوع الغشاء | لون الغشاء | عدد الحلقات | نوع الحلقة | لون بصمة الأبواغ | التوزيع | الموطن |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| سام | محدب | أملس | بني | كدمات | لاذع | حر | قريب | ضيق | أسود | متضخم | متساوٍ | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحدة | متدلية | أسود | متناثر | حضري |
| صالح للأكل | محدب | أملس | أصفر | كدمات | لوزي | حر | قريب | عريض | أسود | متضخم | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحدة | متدلية | بني | وفير | أعشاب |
| صالح للأكل | جرس | أملس | أبيض | كدمات | يانسوني | حر | قريب | عريض | بني | متضخم | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحدة | متدلية | بني | وفير | مروج |
| سام | محدب | قشري | أبيض | كدمات | لاذع | حر | قريب | ضيق | بني | متضخم | متساوٍ | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحدة | متدلية | أسود | متناثر | حضري |
على الفور، تلاحظ أن جميع البيانات نصية. ستحتاج إلى تحويل هذه البيانات لتتمكن من استخدامها في رسم بياني. في الواقع، يتم تمثيل معظم البيانات ككائن:
print(mushrooms.select_dtypes(["object"]).columns)
الناتج هو:
Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor',
'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',
'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',
'stalk-surface-below-ring', 'stalk-color-above-ring',
'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number',
'ring-type', 'spore-print-color', 'population', 'habitat'],
dtype='object')
خذ هذه البيانات وقم بتحويل عمود "الفئة" إلى فئة:
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass
الآن، إذا قمت بطباعة بيانات الفطر، يمكنك رؤية أنها قد تم تجميعها في فئات وفقًا لفئة السام/الصالح للأكل:
| شكل القبعة | سطح القبعة | لون القبعة | كدمات | الرائحة | ارتباط الخياشيم | تباعد الخياشيم | حجم الخياشيم | لون الخياشيم | شكل الساق | ... | سطح الساق تحت الحلقة | لون الساق فوق الحلقة | لون الساق تحت الحلقة | نوع الغشاء | لون الغشاء | عدد الحلقات | نوع الحلقة | لون بصمة الأبواغ | التوزيع | الموطن | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| الفئة | |||||||||||||||||||||
| صالح للأكل | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 |
| سام | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 |
إذا اتبعت الترتيب المعروض في هذا الجدول لإنشاء تسميات فئاتك، يمكنك إنشاء مخطط دائري:
دائري!
labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()
وها هو، مخطط دائري يظهر نسب هذه البيانات وفقًا لهاتين الفئتين من الفطر. من المهم جدًا ترتيب التسميات بشكل صحيح، خاصة هنا، لذا تأكد من التحقق من ترتيب بناء مصفوفة التسميات!
دونات!
مخطط دائري أكثر إثارة للاهتمام بصريًا هو مخطط الدونات، وهو مخطط دائري مع وجود ثقب في المنتصف. دعونا نلقي نظرة على بياناتنا باستخدام هذه الطريقة.
ألقِ نظرة على البيئات المختلفة التي ينمو فيها الفطر:
habitat=mushrooms.groupby(['habitat']).count()
habitat
هنا، تقوم بتجميع بياناتك حسب الموطن. هناك 7 موائل مدرجة، لذا استخدمها كتسميات لمخطط الدونات الخاص بك:
labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']
plt.pie(habitat['class'], labels=labels,
autopct='%1.1f%%', pctdistance=0.85)
center_circle = plt.Circle((0, 0), 0.40, fc='white')
fig = plt.gcf()
fig.gca().add_artist(center_circle)
plt.title('Mushroom Habitats')
plt.show()
يرسم هذا الكود مخططًا ودائرة مركزية، ثم يضيف تلك الدائرة المركزية إلى المخطط. قم بتعديل عرض الدائرة المركزية عن طريق تغيير 0.40 إلى قيمة أخرى.
يمكن تعديل مخططات الدونات بطرق عدة لتغيير التسميات. يمكن تسليط الضوء على التسميات لجعلها أكثر وضوحًا. تعرف على المزيد في التوثيق.
الآن بعد أن عرفت كيفية تجميع بياناتك وعرضها كمخطط دائري أو دونات، يمكنك استكشاف أنواع أخرى من المخططات. جرب مخطط الوافل، وهو مجرد طريقة مختلفة لاستكشاف الكميات.
الوافل!
مخطط "الوافل" هو طريقة مختلفة لتصور الكميات كمصفوفة ثنائية الأبعاد من المربعات. جرب تصور الكميات المختلفة لألوان قبعات الفطر في هذه المجموعة. للقيام بذلك، تحتاج إلى تثبيت مكتبة مساعدة تسمى PyWaffle واستخدام Matplotlib:
pip install pywaffle
حدد جزءًا من بياناتك لتجميعه:
capcolor=mushrooms.groupby(['cap-color']).count()
capcolor
قم بإنشاء مخطط الوافل عن طريق إنشاء تسميات ثم تجميع بياناتك:
import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
'amount': capcolor['class']
}
df = pd.DataFrame(data)
fig = plt.figure(
FigureClass = Waffle,
rows = 100,
values = df.amount,
labels = list(df.color),
figsize = (30,30),
colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)
باستخدام مخطط الوافل، يمكنك رؤية نسب ألوان قبعات الفطر في هذه المجموعة بوضوح. من المثير للاهتمام أن هناك العديد من الفطر ذو القبعات الخضراء!
✅ يدعم PyWaffle الرموز داخل المخططات التي تستخدم أيقونات متوفرة في Font Awesome. قم ببعض التجارب لإنشاء مخطط وا플 أكثر إثارة باستخدام الرموز بدلاً من المربعات.
في هذا الدرس، تعلمت ثلاث طرق لتصور النسب. أولاً، تحتاج إلى تجميع بياناتك في فئات ثم تقرر الطريقة الأفضل لعرض البيانات - دائري، دونات، أو وا플. جميعها لذيذة وتمنح المستخدم لمحة فورية عن مجموعة البيانات.
🚀 التحدي
حاول إعادة إنشاء هذه المخططات اللذيذة في Charticulator.
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
في بعض الأحيان، ليس من الواضح متى يجب استخدام مخطط دائري، دونات، أو وا플. إليك بعض المقالات لقراءتها حول هذا الموضوع:
https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart
https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce
https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm
قم ببعض الأبحاث للعثور على مزيد من المعلومات حول هذا القرار الصعب.
الواجب
إخلاء المسؤولية:
تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.



