הצגת הנתונים מהפכת מידע מורכב לתובנות ברורות וממוצעות. גרפי עמודים של Seaborn מצוינים בהצגת נתונים קטגוריאליים דרך גרפיקה אלגנטית וסטטיסטית. הספרייה משלבת את הגמישות של Matplotlib עם עוצמתה של pandas, מה שהופך אותה לאידיאלית עבור ניתוחים מהירים ולייצור ויזואליזציות שניתנות לפרסום.
גרפי עמודים של Seaborn מציעים תכונות חיוניות לניתוח נתונים – מהשוואות בסיסיות ועד ייצוגים סטטיסטיים מתקדמים. הם עוסקים במשימות נפוצות כגון השוואת מדדי מכירות בין אזורים, ניתוח תגובות לסקרים והצגה ויזואלית של תוצאות ניסויים.
תחביר הספרייה האינטואיטיבי והפונקציות הסטטיסטיות המובנות עושות אותה ערכית גם למתחילים וגם למקצוענים מנוסים בתחום הנתונים.
במאמר זה, נסקור את היסודות של גרפי עמודים של Seaborn, יצירת גרפים בסיסיים עם דוגמאות קוד, שיפור הגרפים דרך התאמה אישית, הטמעת תכונות מתקדמות וחקירת יישומים פרקטיים.
כדי ללמוד עוד על ויזואליזצית נתונים עם Seaborn, תצפה ב-הקורס "מבוא לויזואליזציה של נתונים עם Seaborn".
יסודות של ברפלוט ב-Seaborn
לפני שנכנס לנושא של ברפלוטים, בואו נביט על כמה יסודות של Seaborn, היתרונות שלו ברפלוטים וכיצד להגדיר את סביבת הקידוד.
מהו Seaborn?
Seaborn הוא ספריית ויזואליזציה של נתונים סטטיסטיים ב-Python שנבנתה על גבי Matplotlib. היא מתמחה ביצירת גרפיקות סטטיסטיות מעניינות ומובנות עם קוד מינימלי. הספרייה משולבת באופן צמוד עם DataFrame של pandas, ולכן היא יעילה במיוחד עבור זרימות עבודה בניתוח נתונים.
הספרייה מספקת ממשק ברמה גבוהה לשרטט גרפים מושכים תוך טיפול בפרטים רבים של עיצוב באופן אוטומטי.
הספרייה מתכוננת בצורה מושלמת בשלושה נושאים מרכזיים:
- היא משולבת בצורה חלקה עם DataFrame של pandas, מה שהופך את עיבוד הנתונים לפשוט
- זה מגיע עם פונקציות סטטיסטיות מובנות, מה שמחסל את הצורך בחישובים נפרדים
- זה חל על תבניות נראות מקצועיות ופלטות צבעים כברירת מחדל
למשל, בעוד שמאטפלוטליב דורש מספר שורות קוד כדי ליצור ויזואליזציה סטטיסטית בסיסית, סיבורן יכול להשיג את אותה משימה עם קריאת פונקציה אחת.
לגרפים של עמודות ספציפית, סיבורן מוסיף תכונות חזקות כמו חישוב ממוצע אוטומטי, רווחי ביטחון, וטיפול מתקדם במשתנים קטגוריאליים – יכולות שידרשו קוד נוסף משמעותי במאטפלוטליב פשוט.
למה להשתמש בגרפים של עמודות?
בר-גרפים מציגים נתונים קטגוריים דרך עמודות אנכיות או אופקיות, שבאורך מייצגות ערך מספרי. זה מהפך אותם לאידיאליים להשוואת ערכים בין קבוצות או קטגוריות שונות. בניתוח נתונים, בר-גרפים מסייעים בהמחשת תוצאות סקרים, שיתופי שוק, מדדי ביצועים ותפלגות מכירות.
יתרונות מרכזיים כוללים:
- השוואה ברורה של כמויות בין קטגוריות
- תכונות סטטיסטיות מובנות (ממוצע, חציון, מרווחי אמון)
- ייצוג יעיל של נתונים מקובצים
- רכיבים ויזואליים פשוטים ומידעיים
- אפשרויות התאמה קלות עבור הצגות מקצועיות
הגדרה מהירה
כדי להתחיל ליצור תרשימי עמודות עם Seaborn, נצטרך להגדיר את סביבת ה-Python שלנו. הנה איך להתחיל:
ראשית, נתקין את החבילות הנדרשות כפי שמוצג להלן:
pip install seaborn pandas numpy
עכשיו יש לנו את כל הכלים לוויזואליזציה מוכנים לשימוש. בואו נייבא את הספריות שנזדקק אליהן, כפי שמוצג להלן:
# עבור יצירת ויזואליזציות סטטיסטיות import seaborn as sns # עבור עיבוד וניתוח נתונים import pandas as pd # עבור פעולות מספריות import numpy as np
ניתן לשפר את מראה התרשימים שלנו עם הגדרות סגנון, כפי שמוצג להלן:
# סגנון לבן נקי sns.set_style("white")
הסגנון white
מסיר קווי רשת ויעשה את התרשימים למראה טוב על רוב המסכים. בסעיפים הבאים, נחקור איך ליצור תרשימי עמודות ולשפר אותם.
יצירת תרשימי עמודות ב-Seaborn
גרף עמודים הוא מושלם לחזות יחסים בין משתנים קטגוריים ומספריים. הוא מציג אומדנים נקודתיים (כמו ממוצע או תיכון) והלכסון סביב אותם אומדנים דרך סרגלי שגיאה. בואו נצפה בתחביר הבסיסי של גרף עמודים של seaborn.
תחביר ופרמטרים
ה-sns.barplot() פונקציה ב-Seaborn מספקת דרך ישירה ליצירת גרפים סטטיסטיים של עמודות. המבנה הבסיסי של ה-.barplot() נראה כפי שמוצג להלן:
sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )
הפרמטרים הללו נותנים לנו שליטה על המידע שאנו מציגים וכיצד אנו מציגים אותו. הפרמטר data
מקבל את הDataFrame שלך, x ו-y מציינים אילו עמודות להשתמש בהן עבור הקטגוריות והערכים. הפרמטר estimator
מאפשר לך לבחור איזו פונקציה סטטיסטית להחיל (בממוצע כברירת מחדל), ו-errorbar
נותן שליטה על איך האי וודאות מוצגת. בנוסף, ניתן גם להחליף בין כיווני התצוגה האנכיים והאופקיים באמצעות הפרמטר orient
.
עכשיו, בואו נסתכל על איך ליצור גרפי עמודות אפקטיביים באמצעות מערך הנתונים המובנה של Seaborn, המכיל מידע על חשבונות מסעדה וטיפים.
דוגמה: הדמיית מערך נתונים פשוט
נבחן את התנהגות הטיפים בימים שונים של השבוע באמצעות מערך הנתונים של הטיפים. מערך נתונים זה מכיל מידע על חשבונות מסעדה, כולל יום בשבוע, סכום החשבון הכולל, סכום הטיפ ופרמטרים אחרים.
# ייבוא ספריות נדרשות וטעינת מערך הנתונים import seaborn as sns tips = sns.load_dataset("tips") # יצירת גרף עמודות בסיסי המראה את הטיפים הממוצעים לפי יום sns.barplot(data=tips, x="day", y="tip")
פלט:
הקוד שלנו יצר את ההדמיה למעלה שבה כל עמודה מייצגת את סכום הטיפ הממוצע ליום שונה בשבוע. גובה כל עמודה מראה את ערך הטיפ הממוצע, בעוד שהקווים השחורים (קווי שגיאה) מצביעים על טווח האמון של 95% – נותן לנו תובנה לגבי סכום הטיפ הסטנדרטי וכיצד הוא משתנה.
אנו יכולים גם לבחון את דפוסי הטיפים בזמנים שונים של היום:
# יצירת גרף עמודות המראה את הטיפים הממוצעים לפי זמן ביום sns.barplot(data=tips, x="time", y="tip")
פלט:
הגרף הזה חושף את ההבדל בהתנהגות הטיפים בין שירות צהריים לערב. גובה כל עמודה מייצג את סכום הטיפ הממוצע באותו זמן ביום, עם קווי שגיאה שמראים את המשתנים בהתנהגות הטיפים. סוג זה של ויזואליזציה מקל על זיהוי דפוסים והשוואת קבוצות במבט חטוף.
גרפים בסיסיים אלו מספקים בסיס לוויזואליזציות מורכבות יותר. בחלק הבא, נראה כיצד לשדרג את הגרפים הללו עם צבעים, קבוצות והתאמות נוספות כדי ליצור ויזואליזציות יותר אינפורמטיביות ומושכות מבחינה חזותית.
שדרוג גרפים עם התאמות
הוספת שיפורים חזותיים לגרפים שלנו יכולה לעזור להפוך את הנתונים שלנו ליותר מעניינים וליותר קלים להבנה. בואו נראה את הדרכים השונות להתאים גרפים באמצעות מערכת הנתונים של טיפים.
הוספת צבעים לגרפים
Seaborn מציע מספר דרכים להוסיף צבע לגרפים שלך, מה שהופך אותם ליותר מושכים מבחינה חזותית ואינפורמטיביים. אנו יכולים להשתמש בצבע אחד לכל העמודות או ליצור קבוצות מקודדות בצבע,
הפרמטר color
קובע צבע אחד לכל העמודות, בעוד שהpalette
מאפשר לך להגדיר סקימת צבעים כאשר לנתונים שלך יש קבוצות מרובות. ל-Seaborn יש הרבה פלטות צבעים מובנות שעובדות היטב עבור סוגים שונים של נתונים.
ניתן ליצור תרשים עמודים פשוט עם צבע אחד באמצעות הפרמטר color
כפי שמוצג להלן:
# טען את קובץ הנתונים tips אם עדיין לא עשית זאת import seaborn as sns tips = sns.load_dataset("tips") # תרשים עמודים עם צבע אחד sns.barplot(data=tips, x="day", y="tip", color="skyblue")
פלט:
ניתן ליצור תרשים עמודים עם צבעים מרובים באמצעות הפרמטר palette כפי שמוצג להלן:
# טען את קובץ הנתונים tips אם עדיין לא עשית זאת import seaborn as sns tips = sns.load_dataset("tips") # שימוש בפלטת צבעים שונה sns.barplot(data=tips, x="day", y="tip", palette="Set2")
פלט:
תרשים עמודים של Seaborn עם עמודות מרובות
אחת מתכונות החזקה ביותר של תרשימי עמודים של Seaborn היא היכולת להציג יחסים בין משתנים מרובים באמצעות הפרמטר hue
. זה יוצר עמודות קבוצתיות שמקלות על השוואות.
בואו נשווה את הטיפים במשך שני הימים ובזמני הארוחות תוך שימוש בפרמטר hue
כפי שמוצג למטה:
# טען את מערך הנתונים של הטיפים אם עוד לא עשית זאת import seaborn as sns tips = sns.load_dataset("tips") # צור גרף ברים מקובצים שמראה טיפים לפי יום ושעה sns.barplot( data=tips, x="day", y="tip", hue="time" )
פלט:
הגרף שלמעלה מראה שני ברים – אחד עבור צהריים ואחד עבור ערב. הקיבוץ הזה עוזר לנו לראות לא רק כיצד הטיפים משתנים לפי יום, אלא גם כיצד הם שונים בין זמני הארוחות.
יצירת גרף ברים מוערמים של seaborn
גרפי ברים מוערמים מצוינים להראות את הרכב הקטגוריות השונות. בעוד ש-seaborn אין לו פונקציה ישירה לגרף ברים מוערמים, אנו יכולים לשלב אותו עם matplotlib כדי ליצור ויזואליזציות מוערמות אפקטיביות.
גישה זו מנצלת את הפונקציות הסטטיסטיות של seaborn תוך שימוש ביכולות ההערמה של matplotlib. לדוגמה, במערך הנתונים של הטיפים, בואו נראה כיצד הטיפים מחולקים בין מעשנים ולא מעשנים במשך ימים שונים.
בואו נתחיל בייבוא הספריות הנדרשות עבור הויזואליזציה שלנו:
# ייבא ספריות נדרשות import seaborn as sns import matplotlib.pyplot as plt import numpy as np
עכשיו נטען את מערך הנתונים שלנו המכיל מידע על טיפים במסעדות:
# טען את מערך הנתונים של הטיפים tips = sns.load_dataset("tips")
ניצור דמות עם ממדי מתאימים עבור הוויזואליזציה שלנו:
# יצירת דמות וציר plt.figure(figsize=(10, 4))
לאחר מכן, נחשב את ממוצע הטיפים עבור מעשנים ולא מעשנים בימים שונים:
# חישוב ערכים עבור ערימה # סינון מעשנים, קיבוץ לפי יום וקבלת ממוצע טיפים smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # סינון לא מעשנים, קיבוץ לפי יום וקבלת ממוצע טיפים non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()
לאחר מכן, נקים את הפרמטרים הבסיסיים עבור עמודות הערימה שלנו כפי שמוצג למטה:
# ציור עמודות ערימה באמצעות matplotlib days = smoker_means.index width = 0.8
עכשיו, ניצור את השכבה התחתונה של עמודות הערימה שלנו עבור לא מעשנים:
# יצירת עמודות תחתונות (לא מעשנים) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])
נוסיף את השכבה העליונה עבור הטיפים של מעשנים:
# יצירת עמודות עליונות (מעשנים) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])
בואו נקבע סגנון נקי ללא קווי רשת תוך שימוש בסגנון של seaborn:
# הוספת סגנון Seaborn sns.set_style("white")
לבסוף, נציג את הגרף המושלם שלנו:
# הצגת הגרף plt.show()
פלט:
הגרף המתקבל מציג את ממוצע הטיפים ממעשנים ערוכים מעל טיפים של לא מעשנים לכל יום, מה שמקל על השוואת הטיפים הכוללים ואת התרומה של כל קבוצה.
פתרון זה מאפשר לנו:
- לשמור על סגנון חזותי אטרקטיבי של Seaborn
- להערים את העמודות שלנו כדי להראות את ההרכב
- לשמור על הטבע הסטטיסטי של הוויזואליזציה שלנו
- להשתמש בפלטות הצבעים של Seaborn לצורך עקביות
תכונות מתקדמות וטיפים
כעת שסיימנו לכסות את היסודות וההתאמות המותאמות אישית בואו נסתכל על כמה תכונות מתקדמות שיכולות להפוך את הברפלוטים שלנו למידע רב יותר ומקצועי. נמשיך להשתמש בקבוצת הנתונים של הטיפים כדי להדגים את הטכניקות המתקדמות הללו.
הערות ברפלוט
הוספת תווי ערך לברים יכולה להפוך את הוויזואליזציות שלך למדוייקות יותר ומידע יותר. בואו ניצור ברפלוט שמציג את ערכי הטיפ המדוייקים מעל כל בר.
ראשית, בואו נייבא את הספריות שלנו ונכין את הנתונים שלנו:
# ייבוא הספריות הנדרשות import seaborn as sns import matplotlib.pyplot as plt # טעינת והכנת קבוצת הנתונים של הטיפים tips = sns.load_dataset("tips")
יצירת הברפלוט שלנו עם ערכים סטטיסטיים:
# צור את הברפלוט הבסיסי ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations
בשלב הבא, נוסיף תווי ערך לראש כל בר, כפי שמוצג למטה:
# קבל את גובה כל בר bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # הוסף הערות טקסט מעל כל בר for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )
פלט:
ניהול צירים וסולמות
בעת יצירת ברפלוטים, כיוון הצירים עוזר להפוך את הנתונים שלך לנקראים ומשפיעים יותר. בואו נראה כיצד להתאים את גבולות הצירים, התוויות והסימנים באמצעות פונקציות של Seaborn.
ראשית, נייבא את הספרייה שלנו ונטען את קבוצת הנתונים שנדרשים לוויזואליזציה שלנו:
# ייבוא הספריות הנדרשות import seaborn as sns # טעינת והכנת קבוצת הנתונים של הטיפים tips = sns.load_dataset("tips")
אנו יכולים ליצור תרשים עמודות עם תוויות מותאמות אישית וסדר של ימים. הפרמטר order
מאפשר לנו לציין בדיוק כיצד אנו רוצים לסדר את הימים על ציר ה-x:
# צור תרשים עמודות עם תוויות צירים ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )
כדי להפוך את התרשים שלנו ליותר אינפורמטיבי, אנו יכולים להוסיף תוויות תיאוריות עבור שני הצירים באמצעות השיטה set
:
# קבע תוויות צירים תיאוריות ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )
כדי לדייק את הוויזואליזציה שלנו, אנו יכולים לקבוע גבולות ספציפיים וסימני חלוקה. הפרמטר ylim
שולט בטווח של ציר ה-y, בעוד xticks
ו-yticks
מאפשרים לנו להגדיר בדיוק היכן אנו רוצים שסימני החלוקה יופיעו:
# התאם אישית גבולות צירים וסימני חלוקה ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )
כדי לשלב את כל השינויים האלה בגרף, אנחנו צריכים להריץ אותם בבת אחת ולא אחד אחד. הקוד המלא מופיע למטה:
# ייבוא ספריות נדרשות import seaborn as sns # טען והכן את מערך הנתונים של הטיפים tips = sns.load_dataset("tips") # צור תרשים עמודים עם תוויות צירים ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # קבע תוויות צירים תיאוריות ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # התאם את גבולות הצירים וטיקי הצירים ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )
פלט:
התרשים המתקבל מציג טיפים לפי יום עם תוויות ברורות, סקאלות מתאימות, וסימני טיק מאורגנים היטב, מה שמקל על קריאת הנתונים ופירושם.
שילוב ברים לטעות
ברים לטעות עוזרים להמחיש את האי-ודאות או השונות בנתונים שלך. סיבורן מציע מספר אפשרויות להוספת ברים לטעות לתרשימי העמודים שלך, כולל אינטרוולים של אמון וסטיית תקן.
ראשית, נייבא את הספרייה שלנו ונעמיס את מערך הנתונים שאנחנו צריכים עבור הוויזואליזציה שלנו:
# ייבוא ספריות נדרשות import seaborn as sns # טעינת והכנת מערך הנתונים של טיפים tips = sns.load_dataset("tips")
ברירת המחדל של Seaborn מציגה רווחי ביטחון של 95%. אנחנו יכולים לשנות זאת באמצעות הפרמטר 'errorbar' כדי להציג סוגים שונים של הערכות סטטיסטיות:
# יצירת תרשים עמודים עם רווחי ביטחון ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )
פלט:
אנחנו יכולים גם להציג סטיית תקן במקום רווחי ביטחון, מה שעוזר להמחיש את התפשטות הנתונים שלנו:
# מעבר לסטיית תקן ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )
פלט:
לפעמים, עשויים לרצות להסיר סרגלי שגיאה לחלוטין למראה נקי יותר:
# צור תרשים עמודות בלי סרגלי שגיאה ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )
פלט:
התרשימים התוצאתיים מראים כיצד סוגי סרגלי השגיאה השונים עשויים לעזור לנו להבין את השונות בנתוני הטיפים שלנו במהלך ימי השבוע השונים.
יישומים מעשיים של תרשימי עמודות ב-Seaborn
תרשימי עמודות הם כלים רב-פונקציונליים בעיצוב נתונים, מועילים במיוחד כאשר נדרש להשוות ערכים בין קטגוריות שונות או לנתח משתנים מרובים בו זמנית. בואו נסתכל על שני יישומים נפוצים בהם תרשימי עמודות של Seaborn מצטיינים.
ויזואליזציה של מגמות נתונים קטגוריים
גרפי עמודות של Seaborn מצטיינים בהצגת דפוסים בנתונים קטגוריאליים, במיוחד כאשר מנתחים מדדים בקבוצות שונות. על ידי הצגת נטיית מרכז וחוסר ודאות, גרפי העמודות מסייעים לזהות הבדלים משמעותיים בין הקטגוריות.
זה הופך אותם לאידיאליים לניתוח התנהגות לקוחות, ביצועי מוצרים או תגובות סקר שבהן צריך להשוות ערכים בין קבוצות שונות.
השוואת משתנים מרובים
כאשר הניתוח שלנו כולל גורמים מרובים, גרפי העמודות של Seaborn יכולים להדגיש קשרים מורכבים בנתונים שלנו. שימוש בתכונות כמו קבוצות (גוון) או ערימות מסייע להשוות בין משתנים שונים בו זמנית, מה שמקל על זיהוי דפוסים ואינטראקציות בין היבטים שונים של הנתונים שלנו.
סיכום
תרשימי עמודות של Seaborn מצליחים למצוא את האיזון הנכון בין פשטות לתובנה סטטיסטית. הסינטקס האינטואיטיבי של הספרייה יחד עם תכונות סטטיסטיות חזקות הופכים אותה לכלי חיוני להמחשת נתונים. מתשואות קטגוריות בסיסיות ועד להמחשות קבוצתיות מתקדמות, תרשימי העמודות עוזרים לחשוף ולתקשר דפוסי נתונים ביעילות.
מוכן לשדרג את כישורי ההמחשה שלך? הנה מה לחקור הבא:
- צריך מדריך הפניה מהיר? בדוק את ה דף תרשימים של Python Seaborn
- גלוש בגרפים שורתיים בהמשך הסדרה שלנומדריך לגרפים שורתיים בסיבורן
- למידה כיצד לחזות קורלציות, קראו את מדריך לגרפים חום בסיבורן
- שלטו בהפצות נתונים עם המדריך שלנו על איך להכין היסטוגרמת סיבורן
רוצה להעלות את מיומנויות ה-Seaborn שלך לרמה הבאה? הירשם ל- קורס ויזואליזציה של נתונים ברמה בינונית עם Seaborn.