תרשים עוגה כחלופה הולמת לגרף עמודות

בלוג, הדמיית נתונים

תרשים עוגה כחלופה הולמת לגרף עמודות

במהלך חיי המקצועיים שמעתי רבות בגנות תרשימי עוגה. הסיבה לכך נעוצה בעובדה שקל מאוד לייצר זוועות עם תרשימים אלו. לא עזרה העובדה שבמשך המון זמן ברירת המחדל של תרשימי עוגה, בכל כלי ההדמיה העיקריים, ייצרה תרשימים מעוותים לגמרי. מצדדי החרם על תרשים עוגה מציעים את גרף העמודות כחלופה ראשונה. יחד עם זאת צריך לזכור שלא מתקנים עוול אחד בעוול אחר. לפעמים גרף עוגה דווקא מתאים יותר מגרף העמודות. בואו נראה דוגמה למקרה כזה.

הכנסת המתפקדת האחרונה שהייתה לנו במדינת ישראל הייתה הכנסת ה־20. בואו נראה איך התפלגו מושבי הכנסת בין המפלגות השונות.

זה הקוד ליצירת תרשים עוגה בסיסי בשפת פייתון עם שימוב בספריות סטנדרטיות

fig, ax = plt.subplots()
ax.pie(
    x=tbl_knesset20['מושבים'],
    labels=tbl_knesset20['מפלגה']
)

עד לא מזמן, התוצאה הייתה נראית ככה:


עזבו לרגע את העברית ההפוכה (נטפל בזה בהמשך), הגרף הזה פשוט נורא. הבעיה הגדולה ביותר שלו זה עווית המציאות. כאשר אנחנו מסתכלים על תרשים עוגה, אנחנו אומדים (estimate) שטחים וזוויות. במקרה הזה, יחס גובה/רוחב של העיגול לא נשמר ואתו גם נהרסו השטחים והזוויות. מה עושים?  ספריית matplotlib  מאפשרת קיבוע של יחס גובה/רוחב על ידי ax.set_aspect(1.0) . לשמחתי, גרסאות חדשות של ספריה זו הכניסו את היחס הנכון כברירת מחדל והעוגה הדפולטיבית נראית עגולה היום. ברוך ה׳


לפני שנפתור את הבעיות הגדולות יותר, בואו נטפל בעברית. כל מה שצריך לעשות זה להתקין ספריה מתאימה.

fig, ax = plt.subplots()
ax.set_aspect(1.0)
patches, texts = ax.pie(
    x=tbl_knesset20['מושבים'],
)
ax.legend(patches, tbl_knesset20['label'])
ax.set_title(bidialg.get_display('לא לנסות בבית'))

עדיין לא טוב. מרוב עצים לא רואים את היער. האם הצופה יכול לראות כמה מושבים יש לש״ס, למשל? או לליכוד?

ניסיון להזיז את המקרא ולהוסיף מספרים עדיין לא עובד טוב

בנקודה הזאת, האדם הסביר שלמד הדמית נתונים מרים ידיים, נזכר בתרשימי עמודות ומייצר משהו נחמד

זה יותר טוב, אבל לא מצויין. למה לא? כי אם כל מה שאנחנו רוצים להגיד זה כמה מושבים יש לכל מפלגה, לא צריך גרף, טבלה יכולה להספיק. אבל אם אנחנו רוצים להציג את מאזן הכוחות בכנסת הזאת, הגרף הזה לא מספק את הסחורה בכלל. למעשה, אין לנו כאן עשר מפלגות, אלא שתי קבוצות של מפלגות – הקואליציה והאופוזיציה (זוכרים כמה משעמם היה פעם). ואם מה שמעניין אותנו זה מאזן בין שתי קבוצות, אז גרף עוגה יכול להיות בחירה טובה.

לפני שנמשיך, להלן כללי אצבע לתרשים עוגה טוב אותם ליקטתי בספרות

  • מעט מאוד קבוצות (הייתי אומר, עד 4)
  • הפלחים ממוינים. המיון מקל על ההשוואה
  • עיגול צריך להראות עיגול (יחס גובה/רוחב שווה ל־1(
  • זהו

״רגע!״ אתם וודאי צועקים, לא אמרת מעט קבוצות?  ״כן,״ אני עונה – כאן יש שתי קבוצות: קואליציה ואופוזיציה. בואו נצבע את הפלחים בהתאם

אנחנו מתקרבים. בנקודה זאת אני קצת מרמה. אני רוצה לקבץ את כל מפלגות הקואליציה ביחד, ואת האופוזיציה ביחד. טכנית, כדי לבצע את הקיבוץ הזה, אני הכפלתי את מספר המושבים של הקואליציה במינוס אחד, והתוצאה לפנינו:

נו, תגידו אתם, מה יותר טוב?

אני טוען שבמקרה הזה העוגה עדיפה על המקלות.

מי שמעוניין לראות את קוד הפייתון אתו יצרתי את הגרפים האלה, מומן להגיע לרפוזיטורי שלי בגיטהאב, בו יש עוד הרבה דוגמאות מעניינות..

להלן חוברת העבודה הרלוונטית

https://github.com/bgbg/datascience_dataviz_workshop/blob/master/demos/item_distribution/pie%20charts%20as%20an%20alternative%20to%20bar%20charts%20-%20the%20Israeli%20Knesset.ipynb

מחשבה אחת על “תרשים עוגה כחלופה הולמת לגרף עמודות

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת /  לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת /  לשנות )

מתחבר ל-%s