ברוכים הבאים ליחידה "ויזואליזציה של נתונים" בקורס "תכנות וניתוח נתונים בשפת פייתון". ביחידה זו נצלול לעולם המרתק של הצגת נתונים באופן גרפי, שהוא כלי חיוני להבנה, ניתוח ותקשורת של תובנות מנתונים. נתמקד בשתי ספריות הפייתון המובילות בתחום: Matplotlib, המהווה את הבסיס לרוב פעולות הויזואליזציה, ו-Seaborn, הבנויה מעליה ומציעה פונקציונליות מתקדמת וקלות שימוש לגרפים סטטיסטיים. נלמד לזהות את סוג הגרף המתאים לנתונים ולמטרת הניתוח, וכיצד להתאים אישית כל גרף להצגה אפקטיבית וברורה.
מבוא לויזואליזציה של נתונים וחשיבותה
ויזואליזציה של נתונים היא תהליך של ייצוג מידע ונתונים באופן גרפי. מטרתה העיקרית היא להקל על הבנת מגמות, דפוסים וחריגים בנתונים מורכבים, שקשה לזהותם בטבלאות מספרים בלבד. ויזואליזציה טובה יכולה להפוך נתונים "יבשים" לסיפורים מרתקים וקלים לעיכול, ובכך לתמוך בקבלת החלטות מושכלת.
סוגי גרפים נפוצים ובחירתם
בחירת סוג הגרף הנכון היא קריטית להצגה אפקטיבית של הנתונים. לכל סוג גרף יש מטרה ושימוש אופטימליים. נסקור שלושה סוגים נפוצים:
גרף קו (Line Plot)
מציג מגמות ושינויים לאורך זמן או סדרה רציפה. מתאים במיוחד לנתונים עיתיים (Time Series) או להצגת קשר בין משתנה רציף אחד למשנהו.
שימוש נפוץ: מחירי מניות לאורך חודשים, טמפרטורה יומית.
גרף עמודות (Bar Plot)
משווה ערכים בין קטגוריות שונות. כל עמודה מייצגת קטגוריה, וגובהה מייצג את הערך המספרי. יכול להיות אנכי או אופקי.
שימוש נפוץ: מכירות לפי אזור, מספר סטודנטים לפי מגמה.
גרף פיזור (Scatter Plot)
מציג את הקשר בין שני משתנים מספריים רציפים. כל נקודה מייצגת תצפית, ומיקומה על הצירים מראה את ערכי שני המשתנים. מאפשר זיהוי מתאמים, אשכולות וחריגים.
שימוש נפוץ: גובה מול משקל, ציון במבחן מול שעות לימוד.
Matplotlib: יסודות והתאמה אישית
Matplotlib היא ספריית הויזואליזציה הבסיסית והחזקה ביותר בפייתון. היא מספקת שליטה מלאה על כל אלמנט בגרף, אך דורשת לעיתים קוד מפורט יותר.
מבנה הגרף: Figure ו-Axes
ב-Matplotlib, כל גרף בנוי משני רכיבים עיקריים:
- Figure: המשטח הכולל שעליו מצוירים הגרפים. זהו "הקנבס" או "הדף" שעליו יכולים להיות גרף אחד או יותר.
- Axes: אזור הציור בפועל של הגרף. הוא מכיל את הנתונים, הצירים, הכותרות והתוויות. Figure יכול להכיל מספר אובייקטי Axes.
התאמה אישית של גרפים
Matplotlib מאפשרת התאמה אישית רחבה:
- כותרות ותוויות:
plt.title(),plt.xlabel(),plt.ylabel(). - צבעים וסגנונות: שינוי צבעי קווים, נקודות ועמודות, סגנונות קו, גודל נקודות.
- מקרא (Legend):
plt.legend()להסבר על סדרות נתונים שונות. - רשת (Grid):
plt.grid(True)להוספת קווי רשת. - גבולות צירים:
plt.xlim(),plt.ylim()לקביעת טווחי הצירים.
Seaborn: ויזואליזציה סטטיסטית מתקדמת
Seaborn היא ספרייה הבנויה על Matplotlib ומספקת ממשק ברמה גבוהה יותר ליצירת גרפים סטטיסטיים אטרקטיביים ואינפורמטיביים. היא מצטיינת בטיפול בנתונים מורכבים (כמו DataFrames של Pandas) ובייצור גרפים מרובי משתנים בקלות יחסית.
שאלות לדיון
- מתי תעדיף להשתמש בגרף פיזור על פני גרף קו, ולהיפך? תאר דוגמה לכל מקרה.
- תאר תרחיש שבו פונקציות ברמה גבוהה של Seaborn מציעות יתרון משמעותי על פני הגישה ברמה נמוכה יותר של Matplotlib.
- כיצד תתאים אישית את כותרת הגרף ואת תוויות הצירים באמצעות Matplotlib ובאמצעות Seaborn?
- מהם השיקולים המרכזיים בבחירת סוג הגרף המתאים למערך נתונים נתון ולמטרת ניתוח ספציפית?
נקודות לתשובת מודל
- גרף פיזור מול גרף קו: גרף פיזור מתאים לבחינת קשר בין שני משתנים רציפים ללא סדר טבעי (לדוגמה, גובה מול משקל). גרף קו מתאים להצגת מגמה או שינוי לאורך משתנה מסודר, לרוב זמן (לדוגמה, מכירות חודשיות).
- יתרון Seaborn: Seaborn מצטיינת בגרפים סטטיסטיים מורכבים כמו
sns.boxplot()להשוואת התפלגויות בין קבוצות, אוsns.regplot()להצגת קשר עם קו רגרסיה. פעולות אלו דורשות קוד רב יותר ב-Matplotlib (לולאות, חישובי סטטיסטיקה ידניים). - התאמה אישית כותרות ותוויות:
- Matplotlib:
plt.title("כותרת"),plt.xlabel("ציר X"),plt.ylabel("ציר Y"). אם עובדים עם אובייקט Axes:ax.set_title("כותרת"),ax.set_xlabel("ציר X"),ax.set_ylabel("ציר Y"). - Seaborn: לאחר יצירת הגרף (שמחזיר לעיתים קרובות אובייקט Axes), ניתן להשתמש בשיטות של Matplotlib:
ax.set_title()וכו'. לחלופין, ניתן להשתמש ב-plt.title()וכו' אם לא שומרים את אובייקט ה-Axes.
- Matplotlib:
- שיקולים לבחירת גרף:
- סוג הנתונים: קטגוריאליים, רציפים, סדרתיים.
- מספר המשתנים: חד-משתני, דו-משתני, רב-משתני.
- מטרת הניתוח: השוואה, התפלגות, קשר, קומפוזיציה, מגמה.
- קהל היעד: מי יצפה בגרף ומה רמת הידע שלו.
- אסתטיקה ובהירות: גרף צריך להיות קריא וברור.