|
|
1 year ago | |
|---|---|---|
| .. | ||
| solution | 1 year ago | |
| README.md | 1 year ago | |
| assignment.md | 1 year ago | |
| notebook.ipynb | 1 year ago | |
README.md
חזות פרופורציות
![]() |
|---|
| חזות פרופורציות - סקצ'נוט מאת @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()
טבלה מודפסת עם נתונים נהדרים לניתוח:
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| רעילה | קמורה | חלקה | חומה | חבורות | חריפה | חופשית | צפופה | צרה | שחורה | מתרחבת | שווה | חלקה | חלקה | לבנה | לבנה | חלקית | לבנה | אחת | תלויה | שחורה | מפוזרת | עירונית |
| אכילה | קמורה | חלקה | צהובה | חבורות | שקדים | חופשית | צפופה | רחבה | שחורה | מתרחבת | מועדון | חלקה | חלקה | לבנה | לבנה | חלקית | לבנה | אחת | תלויה | חומה | מרובה | דשא |
| אכילה | פעמון | חלקה | לבנה | חבורות | אניס | חופשית | צפופה | רחבה | חומה | מתרחבת | מועדון | חלקה | חלקה | לבנה | לבנה | חלקית | לבנה | אחת | תלויה | חומה | מרובה | אחו |
| רעילה | קמורה | קשקשית | לבנה | חבורות | חריפה | חופשית | צפופה | צרה | חומה | מתרחבת | שווה | חלקה | חלקה | לבנה | לבנה | חלקית | לבנה | אחת | תלויה | שחורה | מפוזרת | עירונית |
מיד שמים לב שכל הנתונים הם טקסטואליים. תצטרכו להמיר את הנתונים כדי שתוכלו להשתמש בהם בגרף. למעשה, רוב הנתונים מיוצגים כאובייקט:
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')
קחו את הנתונים הללו והמירו את העמודה 'class' לקטגוריה:
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass
עכשיו, אם תדפיסו את נתוני הפטריות, תוכלו לראות שהם חולקו לקטגוריות לפי מחלקת רעילות/אכילה:
| cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | 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 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| class | |||||||||||||||||||||
| אכילה | 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. למרות שאנו שואפים לדיוק, יש לקחת בחשבון שתרגומים אוטומטיים עשויים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפתו המקורית צריך להיחשב כמקור סמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי על ידי אדם. איננו נושאים באחריות לאי הבנות או לפרשנויות שגויות הנובעות משימוש בתרגום זה.



