Skip to content

Latest commit

 

History

68 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

דו"ח ויזואליזציה לדשבורד

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

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

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

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

אנו מתבססים על נתוני NAVCO2.1 שמקורם בDataverse של הארוורד. הם כוללים 384 מחאות בין השנים 1945-2013 ב2718 רשומות עם 142 עמודות, כאשר כל שורה מייצגת שנה של מחאה ספציפית. בנוסף לנתונים אלו, נעזרנו גם בנתונים שנתיים על גודל אוכלוסיית המדינות, מה- World Bank Databank, נתונים אשר שימשו לחישוב אחוז משתתפים במחאה מתוך סה"כ אוכלוסיית המדינה הרלוונטית. נתונים ומטלות: סוג מערך הנתונים שאנו עובדים איתו הוא נתונים טבלאיים,בו item הוא שנה במחאה מסוימת, לדוגמה, מחאת המרד של ADF באוגנדה בשנת, ורוב העמודות האחרות הן attributes. לכן, המפתח הראשי שנעשה בו שימוש הוא עמודת 'campyearid'. אלו המאפיינים העיקריים בהם השתמשנו: Variable Name Attribute Meaning Attribute type Attribute Cardinality id Unique campaign ID Categorial 384 campyearid Unique campaign-year identifier Categorial 2718 year Calendar year Quantitative 1945-2013 Relative Campaign Size percent of population present in campaign Quantitative 0-100 prim_method Denotes the primary type of resistance method used in a campaign year. 0=primarily violent campaign 1=primarily nonviolent campaign Categorial 2 camp_goals Stated goals of the campaign. 0=regime change; 1=significant institutional reform; 2=policy change; 3=territorial secession; 4=greater autonomy 5=anti-occupation; -99=unknown Categorical 6

repression The degree of state repression in response to campaign activity. 0=none; 1=mild repression; 2=moderate repression; 3=extreme repression -99=unknown Ordinal 4

progress Campaign progress during the year. 0=status quo; 1=visible gains short of concessions; 2=limited concession achieved; 3=significant concessions achieved; 4=complete success; 5=ends in failure Ordinal 6

מטלות המשתמש יהיו כדלקמן פעולות מסומנות בצהוב ו-tasks בכחול: Compare the trajectory of different types of campaigns ->Compare trends Discover the correlation between the amount of participants in the campaign to it’s chance of success. - > Discover correlations Discover the correlation between violence during the campaigns and their success. ->Discover correlation Discover the dependency between the state’s reaction to the campaign to its success. -> Discover dependency Discover and compare the correlation between international intervention and success in different types of campaigns (regime change and advocated for increased autonomy) ->Discover and compare correlation Discover which campaign goals are more likely to be partially or fully achieved. -> Discover distributions (of each campaign goal). העיצוב הנבחר ויישומו: ניתוח התקדמות של מחאות לפי תקופות - גרף A (גרף ראשון בדף Campaign Size and Suceess): תיאור: גרף קווים המציג את התפתחותן של מחאות לאורך הזמן. ציר ה-X מייצג את הזמן, וציר ה-Y מייצג את מזהה המחאה. עובי הקו מציין את אחוז האוכלוסיה שמשתתפת, וצבעו מייצג את ההתקדמות (ראו משתנה progress בתיאור הנתונים) של המחאה בכל שנה. אנו מציגים רק מחאות שהתחילו בשנים שבטווח הנבחר, וציר ה-Y ממוין לפי שנת ההתחלה של המחאות. Marks: קווים Channels : מיקום (ציר ה-X: זמן, ציר ה-Y: מזהה המחאה), עובי (אחוז האוכלוסיה המשתתפת), Hue + Saturation(התקדמות בשנה). סינון: טווח שנים. פה ניתן לראות את הגרף עם פילטור על השנים 2006-2013 ושתי המטרות:

כאן הסתכלנו על הרבה יותר שנים, 1977-1997 ורק על מחאות עם מטרה של הגדלת האוטונומיה:

דיון

  1. בדו"ח הקודם קיבלנו הערה כי הגרף האלטרנטיבי לגרף זה יותר ברור (גרף קווים כאשר ציר הy מיצג את הגודל של האוכלוסיה במקום עובי). אך כשניסינו לממש אותו בפועל, גילינו כי הגרף אינו מתאים לנתונים שלנו בכלל כיוון שמרבית המחאות נמצאות באחוזון התחתון של גדלי האוכלוסייה, דבר אשר יוצר צפיפות באזור מסוים בגרף (התחתון) וחוסר תוכן באחוזים הגבוהים (בחלק העליון של בהגרף). כך נראה הגרף לאחר ששיפרנו את הנראות העזרת log scale על ציר הy: לדעתנו הוא עדיין לא היה מספיק קריא, והיה קשה לעקוב אחרי התקדמות של מחאה ספציפית כאשר הן חותכות זו את זו וגם מחליפות צבעים, לכן חזרנו לגרף המקורי בו התכוונו להשתמש.

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

  1. עקב כך שיש הבדלים של סדרי גודל באחוזי המשתתפים במחאות, חילקנו את האחוזים לbins ולכל bin הגדרנו גודל. ההצדקה לכך היא שהגיוון הגדול בערכי האוכלוסיות יוצרת מצב של קיצוניות יתרה בעובי הקווים כאשר קו אחד עלול לתפוס את מרבית הגרף, ניתן עדיין לראות את האחוז המדוייק על ידי hover. סיקור: Expressiveness ניתן לראות את ההתייחסות ל"progress" כמשתנה אורדינלי בעל סדר על ידי השימוש בhue ממוין מאדום (Failure) לירוק חזק (complete success) . נשים לב שציר ה x הוא ציר הזמן אשר גם משתמש כמשתנה אורדינלי, כאשר המחאות מתחיל משמאל (שנים מוקדמות) ומסתיימות בימין (שנים מאוחרות). בנוסף לכך, מיינו את המחאות על ציר הy כך שהמחאות שמתחילות מוקדם יותר בפרק זמן שנבחר, יופיעו למטה יותר. Effectiveness
    Accuracy - אחוז המשתתפים לא מיוצג בצורה מדוייקת שכן הוא מיוצג ע"י צ'אנל הרוחב/שטח. ההצדקה לכך היא שבהניתן שצ'אנל המיקומים מייצגים משתנים אחרים (זמן ושם מחאה) והצבע מייצג התקדמות, הנחנו שרוחב הוא הצ'אנל הנותר לנו שיאפשר הערכה כללית של הנתונים בצורה הברורה ביותר מבין האפשרויות השונות לצ'אנל. Discriminability - קל להפריד בין הצבעים במשתנה הprogress. לעומת זאת בכמות הbins (כמות הרוחבים הקיימת) של אחוזי המשתתפים (9) היכולת להבדיל בין שניים צמודים היא גבולית, אך התפיסה הכללית של הגודל נשמרת. Separability - בחרנו לוותר על סוג הקו בין השאר כי הוא לא היה מספיק separable מעובי הקו, הצבע והעובי לא פוגעים בseperability. Popout - השינויים בצבעי הקווים בגרף קופצים לעין ומקלים על ההבנה של התקדמות המחאות. Grouping - הקיבוץ של מחאות שהתחילו באותן שנים נעשה ע"י מיון ציר הy לפי שנת ההתחלה, אם כך מחאות עם נקודות התחלה קרובה יהיה קרובים גם בציר x וגם בציר y. קיבוץ זה מייצר סדר בגרף ומאפשר להסתכל על תתי תקופות בתוך התקופה שנבחרה גם ללא שימוש נוסף בפילטר. הצלחת המחאות לפי אחוז השתתפות - גרף B (גרף שני בדף Campaign Size and Success): תיאור: תרשים עמודות המציג את הקשר בין גודל המחאה כאחוז מהאוכלוסיה לבין סיכויי ההצלחה שלה. ציר ה-X מייצג את גודל המחאה (מחולק לbins באחוזים), ציר הY מייצג את אחוזי ההצלחה. פיצלנו את הגרף לשניים, אחד של מחאות קטנות (פחות מאחוז וחצי מהאוכלוסייה) ואחד של מחאות גדולות (יותר מאחוז וחצי). בנוסף מתחת לגרף יש Violin plot ונקודות המציגים את התפלגות הרשומות. סימנים: קווים לעמודות ולviolin, נקודות להתפלגות. ערוצים: מיקום (ציר ה-X: גודל המחאה), אורך (אחוז הצלחה), הערוץ בחלק התחתון הוא רוחב ל-violin ומיקום נקודות על ציר הx. סינון: כיוון שלכל שנה במחאה יש אחוז השתתפות שונה, וביצענו פה אגרגציה לפי הID של המחאה, יש דרכים שונות לבחור את סטטיסטיקת החישוב עבור אחוז השתתפות עבור המחאה כולה. נתנו למשתמשים את האפשרות לבחור מבין מספר שיטות סיכום-, ניתן לבחור ממוצע, אחוז בשנה אחרונה של המחאה או אחוז השתתפות מקסימלי. בנוסף ישנו סינון לפי מספר בינים.

כאן ניתן לראות את הגרף עם שיטת חישוב של גודל המחאה של ממוצע לאורך שנים ומספר בינים של 8:

כאן ניתן לראות את הגרף כאשר הגודל נקבע על פי השנה האחרונה של המחאה ו5 בינים.

דיון מאחר והרוב הגדול של המחאות נמצאות באחוזים הנמוכים (0-1%) של משתתפים מתוך כלל האוכלוסיה, נאלצנו למצוא פתרון שיאפשר להציג את ההבדלים בתוך האחוזים הנמוכים בלי לוותר לגמרי על המידע מהמחאות הגדולות יותר. מאחר שהיו מקרי קצה מעטים מאוד עם אחוז גבוה מאוד של משתתפים (מעל 15%), בעיקר ממדינות קטנות, החלטנו להסיר אותם מגרף זה כדי להוריד את ההטייה של ציר הX ואת חוסר האיזון. בנוסף לכך פיצלנו את הגרף לשניים כך שבמחאות הקטנות יהיו הפרשים קטנים יותר בין הbins. מאחר וידיעה של כמות הדוגמאות בbin חשובה למשתמשים, בשביל להפוך את הזיהוי שלה למהיר ופשוט הוספנו violin plot מתחת לגרף אשר משמש כעזר למשתמש לאמוד את כמות המחאות בגדלים שונים:

Expressiveness ניתן לראות כי גודל המחאות כאחוז מהאוכלוסיה, שנמצא על ציר הx, ממוין משמאל לימין כאשר העמודות בשמאל הן באחוזים הנמוכים והמחאות בימין הן באחוזים הגבוהים. Effectiveness
Accuracy - מאחר שאורך מאפשר אמידה טובה מאוד, בעזרת גרף זה ניתן לאמוד באופן מדויק את את אחוז הההצלחה של קבוצת מחאות בבין, כמו כן ניתן לדעת באופן מדויק את גבולות הבין מבחינת גודל המחאה כאחוז מהאוכלוסיה. Discriminability - ניתן לבחור באופן עצמאי את מספר הבינים/קבוצות של מחאות לקבץ לפי גודל המחאות. זה חשוב גם כי כמות הבינים יכולה להשפיע מאוד על המסקנות המתקבלות, ולכן משתמשים יכולים לאמת אם מסקנה שלהם נתמכת גם כשמשנים את כמות הבינים. Separability - מיקום העמודות ואורכן מייצגים פנים שונים בדאטא והעיון בצ'אנל אחד לא ישפיע על העיון בפאנל האחר במובן הויזואלי. popout - בגרף אין רכיב popout, זאת משום שלא רצינו למשוך את תשומת הלב של המשתמש לאלמנט או מיקום ספציפי, מטרתנו הייתה שלמשתמש יהיה את החופש לעיין בגרף בחלקים שונים באופן שווה. Grouping - ישנם שני קיבוצים בגרף זה, האחד זה בין שני סוגי המחאות שסיווגנו בתור גדולים וקטנים (לפי הthreshold של 1.5% מהאוכלוסיה), קיבוץ זה נוצר בעזרת רווח בולט בין שני הגרפים. הקיבוץ השני והיותר טריויאלי הינו הקיבוץ שנעשה בתור עמודות לרשומות בדאטא בעזרת צ'אנל הקווים, המשתמש רואה את החלוקה של הרשומות לקבוצות של בינים לפי גודל המחאה כאחוז מהאוכלוסייה ,לפי מספר הבינים שבחר המשתמש בעזרת קו עמודה לכל קבוצה, annotation של הגבולות ומרחק בין העמודות.

ניתוח אלימות ותגובת המדינה - גרף CD: תיאור: תרשים עוגה בעל facet כפול, המציג את הקורלציה בין אלימות המחאה ותגובת המדינה להצלחת המחאה. ציר ה-X מייצג את תגובת המדינה (ארבעה ערכים המציינים את רמת הדיכוי בתגובה למחאה), וציר ה-Y מייצג את אלימות המחאה (לעולם לא אלימה, לעיתים אלימה, תמיד אלימה). כל נקודה ברשת מכילה תרשים פאי הצבוע בהתאם לאחוזי ההצלחה של מחאות עם ערכים אלו. סימנים: שטח וזווית. ערוצים: מיקום (grid: שורות לרמת אלימות המחאה, עמודות לרמות הדיכוי), זווית (אחוז הצלחה או כישלון), hue (תווית הצלחה או כישלון). סינון: מימשנו פילטר אשר נותן למשתמש אפשרות להפוך את הגרף לfacet לפי מטרת המחאה.

כאן ניתן לראות את הגרף ללא הfacet.

עם הfacet:

דיון מאחר שאלימות של מחאה ואלימות הדיכוי נגדה קשורים זה בזה, החלטנו לענות על שאלות C ו-D בגרף שמציג את אחוזי ההצלחה עבור כל שילוב שלהם. מאחר ושני הגרפים האחרים באותו העמוד מחולקים לפי מטרה, לצורך נוחות המשתמש הפכנו את הגרף המפוצל לברירת המחדל. בנוסף, שקלנו להוריד את העמודה הריקה מימין בגרף עם הfacet, אך חששנו שזה יכול ליצור פרשנות מוטעה אם המשתמשים לא ישימו לב איזה לייבל חסר, לכן השארנו את העמודה הזו במקומה. Expressiveness סידרנו את הfacets כך שכמות האלימות/הדיכוי תעלה לפי הסדר. Effectiveness
Accuracy - אמנם גרף עוגה בדרך כלל לא מקל על תפיסה של חלוקת האחוזים בצורה המדוייקת ביותר, אך מכיוון שיש רק שני צבעים, ושהאחוזים גם מופיעים כטקסט על העוגה, בעייה זו פוחתת. popout - מאחר וההבדל בצבעים בולט, ויש רק שני צבעים, עוגות שחלוקתן שונה משמעותית מהאחרות יבלטו במהירות. למשל העוגות עם 100% כישלון או הצלחה קופצות לעין. Grouping - ניתן לזהות בקלות קיבוץ ויזואלי על פני אחד הfacets ולהבין מכך טרנדים שחוצים את הפאסט השני. (למשל להסתכל על כל עמודת Extreme Repression ולהבין מכך את הטרנד הכולל של סוג כזה של repression. ניתוח התערבות בינלאומית - גרף E: תיאור: תרשים סנקי המציג את הקשר בין התערבות בינלאומית וההצלחה במחאות שונות (שינוי משטר ותמיכה בשלטון עצמאי מוגבר). התרשים מחולק לפי מטרת המחאה, וכל תרשים סנקי מחולק לפי התערבות בינלאומית. כל "צינור" מחולק ל-6 לפי הprogress הגבוה ביותר אליו הגיע המחאה. סימנים: קווים ערוצים: מיקום (ציר ה-X: מחולק לפי מטרת המחאה, ציר ה-Y: שכבה ראשונה - התערבות בינלאומית, שכבה שנייה - התקדמות), רוחב הקו (מספר הדוגמאות), hue(התקדמות).

דיון נשים לב כי בגרף ניתן לראות כמה רשומות יוצאות ונכנסות לכל אובייקט:

Expressiveness שוב, פה ניתן לראות ייצוג של הסדר במשתנה progress בגרף לפי צבעי הערכים וכמו כן הערכים מסודרים במיקום האנכי שלהם לפי הסדר. Effectiveness
Accuracy - גרף זה אינו מעביר את המידע בגרף באופן מדויק שכן המשתמש נאלץ לאמוד לפי רוחב הפס את כמויות הרשומות שעוברים מיעד למטרה, על מנת להציג את המידע באופן המדויק ביותר נצטרך להוסיף מספרים על הגרף כפי שניתן לראות בhover. עם זאת, דבר זה יעמיס ויפריע למשתמש להעריך באופן מהיר את ההתפלגות הכללית יותר של ההתערבות הבינלאומית על ההתקדמות. popout - העובדה שהprogress מוצג גם על ידי צבע וגם על ידי גובה, גורמת לכך שprogress שנפוץ יותר יבלוט לעין (כי הצבע שלו יתפוס יותר שטח), מה שמאפשר לזהות במבט מהיר שלדוגמה במטרה של אוטונומיה ההצלחה המוחלטת נפוצה יותר, ושבמטרה של החלפת המשטר השגה של ויתורים נרחבים נפוצה מאוד. Grouping - הקווים מחולקים לפי צבע של הnode ממנו הם יצאו. Discriminability - ניתן לראות לפי גודל הקווים וגם לפי כמות החלוקות בתוך אותו הצינור מכמה מחאות כל צינור מורכב.

הישגים לפי סוג מחאה - גרף F: תיאור: תרשים עמודות המחולק לfacets לפי מטרה, המציג אילו מטרת מחאה יותר סביר שתושג באופן חלקי או מלא. ציר ה-X מייצג את סוגי המחאות, והעמודות צבועות בהתאם לערכי ההתקדמות (כישלון, סטטוס קוו, רווחים נראים, ויתורים מוגבלים, ויתורים משמעותיים או הצלחה מוחלטת). עמודות ההתקדמות יופיעו בסדר מסוים (מאחר והמשתנה הוא אורדינלי) כדי להקל על הבנת המידע. נציין שה"התקדמות" או ההישג שנחשיב עבור כל מחאה תהיה ההישג המקסימלי, כלומר אם בשנה אחת ההתקדמות של מחאה היה "status quo" ושנה לאחר מכן "ends in failure" נחשיב שהמחאה הגיעה לstatus quo. סימנים: קווים ערוצים: מיקום (ציר ה-X: שכבה ראשונה - התקדמות, שכבה שנייה - סוג המחאה), אורך (ערך ההתקדמות), saturation+hue(סוג המחאה) Expressiveness ניתן לראות את ההתייחסות ל"progress" כמשתנה אורדינלי בעל סדר בצבעים, בסדר ההופעה של העמודות. כאשר Failed Immediatly הינו אדום ובשמאל וComplete Success בימין ובצבע ירוק בוהק. נשים לב שבחרנו ל Failed Immediatly צבע שמעט חורג מהסכמת הצבעים השרויה על מנת להגדיל את המרחק בינו לשאר ההישגים. Effectiveness
Accuracy - אורך מאפשר זיהוי מדוייק של האחוזים, בנוסף טקסט עם אחוז החלוקה של כל פריט מידע מקודד של עמודה מספק אפשרות עמידת הבדלים מדויקת בין מטרות המחאות השונות. Discriminability - גווני הירוק שונים זה מזה בצורה בולטת יחסית, ובנוסף הסדר הקבוע שלהם מקל על הזיהוי. popout - ישנה הבלטה של הערך "Failed Immediatly" בשל הצבע שחורג מסכמת צבעים (color scheme) השרויה בשאר עמודות כפי שהוסבר בExpressiveness, דבר המושך תשומת לב נוספת לערך זה ומבדיל אותו מהשאר. Grouping - בצ'אנל הצבע ישנו קיבוץ תפיסתי של סוג ההתקדמות שהושג בכל מטרה. למשל המשתמש יכול להשוות בין אחוז המחאות שהשיגו "Complete Success" בשני סוגי המחאות באופן מהיר בעזרת הצבע הירוק החזק של ערך זה.

דיון כללי על הdashboard הרגשנו כי ישנם שני מוטיבים מרכזיים בשאלות מחקר שלנו, אחד הוא השוואה בין סוגי המחאות והשני הקשר בין גודל המחאה להצלחתה. לכן חילקנו את הגרפים שלנו לשני עמודים בהתאם לשאלות המחקר עליהן הם עונות. נשים לב כי בדאשבורד ישנם שני עמודים, במקור בstreamlit המעבר הוא על ידי sidebar, אבל הרגשנו שה-sidebar תופס מקום חשוב מהמסך, ולכן הסתרנו אותו והשתמשנו בחבילת streamlit_extras כדי ליצור כפתור להעביר בין הדפים. מאחר והכפתור לא היה בולט במקור עיצבנו אותו ידנית בעזרת קוד CSS. בהתחלה וסוף של כל עמוד ישנו כפתור המעביר לעמוד השני:

עדיין ישנה האפשרות ללחוץ על החץ בפינה ימנית למעלה ולפתוח חזרה את הsidebar:

נביא לתשומת לב הבודקים כי לאורך כל העמוד של Campaign size and success הגרפים נמצאים בfacet כאשר בכולם סוג המטרה Regime change בשמאל וGreater Autonomy בימין. כמו כן בתחילת כל דף ישנה כותרת הדף והסבר כללי על משמעות הדף. התלבטנו איזה דף לשים כדף הראשי, מצד אחד חשבנו לשים את הדף הכולל את גרף A ראשון (Campaign Size and Success), מאחר שזה גרף ייחודי שיכול ליצור עניין. לאחר מחשבה החלטנו שהאופציה השנייה עדיפה, כי חששנו שגרף A עלול להוות "נחיתה קשה" מאחר שהוא מורכב יותר להבנה. עיבוד מקדים של הנתונים קידוד של העמודות הרלוונטיות לעמודות עם ערכים אינפורמטיבים (לדוגמא 0 -> סטטוס קוו). חישוב אחוזי התשתתפות במחאות מתוך כלל האוכלוסיה בעזרת קובץ csv נוסף של אוכלוסיות המדינות לאורך שנים חישוב אלימות בעזרת עמודת prim_merth. אם המחאה הייתה אלימה לאורך כל שנותיה, אזי היא always violent, אם לא הייתה אלימה בשום שנה לאורך חייה אזי היא never violent ואם יש למחאה שנים אלימות ושנים לא אלימות אזי היא sometimes violent. חישובים דומים נעשו עבור גרפים אחרים בהם היה קיבוץ ומפורטים בגרף עצמו.

חלק מעשי עבור הויזואליציה שלנו נעזרנו בספריות , streamlit ,plotly, plotly express וstreamlit extra. עבור חלק מהגרפים סימלצנו facets על ידי יצירת עמודות של הדשבורד ויצירת שני גרפים נפרדים שיהיו זה לצד זה. בגרף A, לא הייתה אופציה מובנית להגדיר משתנה שיקבע את עובי הקו, אלא רק לשנות את עובי כל הקוים. לכן, מימשנו את הגרף כך שלכל שנה יצרנו כביכול trace נפרד (קו נפרד) והלבשנו את כולם על אותו הplot. בנוסף כדי שהכל שנה תוצג כקו ולא כנקודה היינו צריכים ליצור "Dummy year" עבור כל שנה האחרונה של מחאה, כי כל קו צריך נקודת התחלה ונקודת סוף. בגרף A, יצרנו bins עבור אחוזי ההשתתפות במחאה. בגרפים אשר מתייחסים לכל מחאה כאובייקט אחד (ולא לכל שנה במחאה כמו A) עשינו group by לפי המזהה של המחאה ובחרנו את הערכים הרלוונטים להשאיר בעמודות הרלוונטים (לדוגמא בחרנו בprogress הכי מתקדם של מחאה שייחשב כהישג מקסימלי בגרף F).

מקורות שבהן נעזרנו לדשבורד: עזר לנו לפצל את הlegend בגרף 1: https://stackoverflow.com/questions/69815492/group-each-graph-dimension-in-the-legend-of-plotly ליצור קווים עם רוחב משתנה: https://stackoverflow.com/questions/583 35021/plotly-how-to-set-width-to-specific-line

עבור שאר ויזואליזציות נעזרנו בעיקר בתיעוד של הספריות עצמם.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages