# အဓိပ္ပါယ်ရှိသော ဒေတာအမြင်ဖန်တီးခြင်း |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/13-MeaningfulViz.png)| |:---:| | အဓိပ္ပါယ်ရှိသော ဒေတာအမြင်ဖန်တီးခြင်း - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | > "ဒေတာကို အလွန်အမင်းနှိပ်စက်လိုက်ရင်၊ အရာအားလုံးကို ဝန်ခံမယ်" -- [Ronald Coase](https://en.wikiquote.org/wiki/Ronald_Coase) ဒေတာသိပ္ပံပညာရှင်တစ်ဦး၏ အခြေခံကျသော ကျွမ်းကျင်မှုတစ်ခုမှာ မိမိမေးမြန်းလိုသော မေးခွန်းများကို ဖြေရှင်းနိုင်ရန် အဓိပ္ပါယ်ရှိသော ဒေတာအမြင်တစ်ခု ဖန်တီးနိုင်စွမ်းဖြစ်သည်။ ဒေတာကို အမြင်ဖန်တီးမည်မပြုမီ၊ ယခင်သင်ခန်းစာများတွင် ပြုလုပ်ခဲ့သည့်အတိုင်း ဒေတာကို သန့်စင်ပြီး ပြင်ဆင်ထားရန် လိုအပ်သည်။ ထို့နောက်၊ ဒေတာကို အကောင်းဆုံး ဖော်ပြရန် ဆုံးဖြတ်နိုင်ပါသည်။ ဒီသင်ခန်းစာတွင် သင်လေ့လာမည်မှာ - 1. မှန်ကန်သော ချတ်အမျိုးအစားကို ရွေးချယ်နည်း 2. လှည့်စားသော ချတ်ဖန်တီးမှုကို ရှောင်ရှားနည်း 3. အရောင်နှင့် အလုပ်လုပ်နည်း 4. ဖတ်ရှုရလွယ်ကူစေရန် ချတ်များကို စတိုင်ပြင်ဆင်နည်း 5. အနုစိတ်လှုပ်ရှားမှုနှင့် 3D ချတ်ဖန်တီးနည်း 6. ဖန်တီးမှုအမြင်တစ်ခု ဖန်တီးနည်း ## [Pre-Lecture Quiz](https://ff-quizzes.netlify.app/en/ds/quiz/24) ## မှန်ကန်သော ချတ်အမျိုးအစားကို ရွေးချယ်ခြင်း ယခင်သင်ခန်းစာများတွင် သင်သည် Matplotlib နှင့် Seaborn ကို အသုံးပြု၍ စိတ်ဝင်စားဖွယ် ဒေတာအမြင်များ ဖန်တီးခဲ့သည်။ အထူးသဖြင့် မေးမြန်းလိုသော မေးခွန်းအပေါ် မူတည်၍ [မှန်ကန်သော ချတ်အမျိုးအစား](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) ကို ရွေးချယ်နိုင်သည်။ | သင်လိုအပ်သည်: | သင်အသုံးပြုသင့်သည်: | | -------------------------- | ------------------------------- | | အချိန်အလိုက် ဒေတာလမ်းကြောင်းကို ဖော်ပြရန် | Line | | အမျိုးအစားများကို နှိုင်းယှဉ်ရန် | Bar, Pie | | စုစုပေါင်းကို နှိုင်းယှဉ်ရန် | Pie, Stacked Bar | | ဆက်နွယ်မှုများကို ဖော်ပြရန် | Scatter, Line, Facet, Dual Line | | ဖြန့်ဝေမှုများကို ဖော်ပြရန် | Scatter, Histogram, Box | | အချိုးအစားများကို ဖော်ပြရန် | Pie, Donut, Waffle | > ✅ သင့်ဒေတာ၏ ဖွဲ့စည်းမှုအပေါ် မူတည်၍ ချတ်တစ်ခုကို ထောက်ခံရန် ဒေတာကို စာသားမှ နံပါတ်သို့ ပြောင်းလဲရန် လိုအပ်နိုင်သည်။ ## လှည့်စားမှုကို ရှောင်ရှားခြင်း ဒေတာသိပ္ပံပညာရှင်တစ်ဦးသည် မှန်ကန်သော ချတ်ကို မှန်ကန်သော ဒေတာအတွက် ရွေးချယ်သော်လည်း၊ ဒေတာကို အမှန်တစ်ကယ် ဖော်ပြရန် အလွန်အမင်း လှည့်စားနိုင်သော နည်းလမ်းများ ရှိသည်။ လှည့်စားသော ချတ်များနှင့် အင်ဖိုဂရပ်များ၏ ဥပမာများ များစွာ ရှိသည်။ [![How Charts Lie by Alberto Cairo](../../../../3-Data-Visualization/13-meaningful-visualizations/images/tornado.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") > 🎥 အထက်ပါပုံကို နှိပ်၍ လှည့်စားသော ချတ်များအကြောင်း ဆွေးနွေးမှုကို ကြည့်ပါ ဤချတ်သည် X axis ကို ပြောင်းလဲ၍ အမှန်တစ်ကယ်ဖြစ်ရပ်၏ ဆန့်ကျင်ဘက်ကို ဖော်ပြသည်။ ![bad chart 1](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-1.png) [ဤချတ်](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) သည် ပိုမိုလှည့်စားမှုရှိပြီး၊ COVID အမှုအခြေအနေများသည် အချိန်အလိုက် လျော့နည်းသွားသည်ဟု သတ်မှတ်ရန် မျက်လုံးကို ဆွဲဆောင်သည်။ သို့သော်၊ ရက်စွဲများကို အနည်းငယ်ကြည့်ပါက၊ လျော့နည်းမှုကို ဖော်ပြရန် ရက်စွဲများကို ပြောင်းလဲထားသည်ကို တွေ့ရမည်။ ![bad chart 2](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-2.jpg) ဤနာမည်ဆိုးရှိသော ဥပမာသည် အရောင်နှင့် ပြောင်းလဲထားသော Y axis ကို အသုံးပြု၍ လှည့်စားသည်။ ဥပမာအားဖြင့်၊ လက်နက်ဆိုင်ရာ ဥပဒေပြဌာန်းပြီးနောက် လက်နက်သေဆုံးမှုများ တက်လာသည်ဟု သတ်မှတ်ရန်အစား၊ မျက်လုံးကို လှည့်စား၍ ဆန့်ကျင်ဘက်ကို ယုံကြည်စေသည်။ ![bad chart 3](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-3.jpg) ဤထူးဆန်းသော ချတ်သည် အချိုးအစားကို လှည့်စားပြီး၊ ဟာသဆန်သော အကျိုးသက်ရောက်မှုကို ဖန်တီးသည်။ ![bad chart 4](../../../../3-Data-Visualization/13-meaningful-visualizations/images/bad-chart-4.jpg) မတူညီသော အရာများကို နှိုင်းယှဉ်ခြင်းသည် လှည့်စားမှု၏ နောက်ထပ် နည်းလမ်းတစ်ခုဖြစ်သည်။ [Spurious correlations](https://tylervigen.com/spurious-correlations) ဆိုသော ဝက်ဘ်ဆိုဒ်သည် Maine တွင် အိမ်ထောင်ဖျက်မှုနှုန်းနှင့် Margarine စားသုံးမှုတို့ကို နှိုင်းယှဉ်ထားသည့် 'အတု correlation' များကို ဖော်ပြသည်။ Reddit မှာလည်း [dataisugly](https://www.reddit.com/r/dataisugly/top/?t=all) ဆိုသော အဖွဲ့သည် ဒေတာကို မကောင်းစွာ အသုံးပြုထားသော ဥပမာများကို စုဆောင်းထားသည်။ လှည့်စားသော ချတ်များကြောင့် မျက်လုံးသည် လွယ်ကူစွာ လှည့်စားနိုင်သည်ကို နားလည်ရန် အရေးကြီးသည်။ ဒေတာသိပ္ပံပညာရှင်၏ ရည်ရွယ်ချက်ကောင်းကောင်းဖြစ်သော်လည်း၊ ချတ်အမျိုးအစား မကောင်းသော ရွေးချယ်မှု (ဥပမာ - အမျိုးအစားများ များစွာပါဝင်သော Pie chart) သည် လှည့်စားမှုကို ဖြစ်စေနိုင်သည်။ ## အရောင် အထက်ပါ 'Florida gun violence' ချတ်တွင် မြင်ရသည့်အတိုင်း၊ အရောင်သည် ချတ်များတွင် အဓိပ္ပါယ်တစ်ခု ထပ်ဆောင်းပေးနိုင်သည်။ Matplotlib နှင့် Seaborn ကဲ့သို့သော စာကြည့်တိုက်များနှင့် palette များပါဝင်သော library များကို အသုံးမပြုဘဲ ချတ်ကို ကိုယ်တိုင် ဖန်တီးနေပါက [အရောင်သီအိုရီ](https://colormatters.com/color-and-design/basic-color-theory) ကို လေ့လာပါ။ > ✅ ချတ်များကို ဒီဇိုင်းဆွဲနေစဉ်၊ အရောင်မမြင်နိုင်သောသူများအတွက် ချတ်သည် အဆင်ပြေမပြေ စဉ်းစားပါ။ သင့်ချတ်သည် မျက်လုံးအနည်းငယ်မမြင်နိုင်သောသူများအတွက် အဆင်ပြေပါသလား? ချတ်အတွက် အရောင်များကို ရွေးချယ်ရာတွင် သတိထားပါ၊ အရောင်သည် သင်မရည်ရွယ်ထားသော အဓိပ္ပါယ်ကို ပေးနိုင်သည်။ 'height' ချတ်တွင် 'pink ladies' သည် 'feminine' အဓိပ္ပါယ်ကို ပေးပြီး၊ ချတ်ကို ပိုမိုထူးဆန်းစေသည်။ [အရောင်အဓိပ္ပါယ်](https://colormatters.com/color-symbolism/the-meanings-of-colors) သည် ကမ္ဘာ့အပိုင်းအစအလိုက် မတူကွဲပြားနိုင်ပြီး၊ အရောင်၏ အရောင်အဆင်းအလိုက် အဓိပ္ပါယ်များ ပြောင်းလဲနိုင်သည်။ အထူးသဖြင့် အရောင်များ၏ အဓိပ္ပါယ်များမှာ - | အရောင် | အဓိပ္ပါယ် | | ------ | ------------------- | | အနီရောင် | အာဏာ | | အပြာရောင် | ယုံကြည်မှု၊ သစ္စာ | | အဝါရောင် | ပျော်ရွှင်မှု၊ သတိထားမှု | | အစိမ်းရောင် | သဘာဝ၊ ကံကောင်းမှု၊ မနာလိုမှု | | ခရမ်းရောင် | ပျော်ရွှင်မှု | | လိမ္မော်ရောင် | တက်ကြွမှု | သင့်အား ချတ်ကို အရောင်စိတ်ကြိုက်ဖြင့် ဖန်တီးရန် တာဝန်ပေးပါက၊ သင့်ချတ်များသည် အရောင်မမြင်နိုင်သောသူများအတွက် အဆင်ပြေမှုရှိပြီး၊ သင်ရည်ရွယ်ထားသော အဓိပ္ပါယ်နှင့် ကိုက်ညီမှုရှိစေရန် သေချာပါစေ။ ## ဖတ်ရှုရလွယ်ကူစေရန် ချတ်များကို စတိုင်ပြင်ဆင်ခြင်း ချတ်များသည် ဖတ်ရှုရလွယ်ကူမှုမရှိပါက အဓိပ္ပါယ်မရှိပါ! သင့်ဒေတာနှင့် ကိုက်ညီစေရန် ချတ်၏ အကျယ်နှင့် အမြင့်ကို စတိုင်ပြင်ဆင်ရန် အချိန်ယူပါ။ ဥပမာအားဖြင့်၊ အမေရိကန်ပြည်နယ် 50 ခုအား ဖော်ပြရန်လိုအပ်ပါက၊ Y axis တွင် လျှောက်ထား၍ အလျားလိုက် scroll လုပ်ရန် မလိုအပ်စေရန် ပြုလုပ်ပါ။ Axis များကို အမှတ်အသားပြုပါ၊ လိုအပ်ပါက Legend ပေးပါ၊ ဒေတာကို ပိုမိုနားလည်စေရန် Tooltip များ ပေးပါ။ X axis တွင် စာသားများသည် အလွန်ရှည်လျားပါက၊ ဖတ်ရှုရလွယ်ကူစေရန် စာသားကို ထောင့်ချပါ။ [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) သည် 3D plotting ကို ပံ့ပိုးပေးပြီး၊ သင့်ဒေတာနှင့် ကိုက်ညီပါက အသုံးပြုနိုင်သည်။ `mpl_toolkits.mplot3d` ကို အသုံးပြု၍ ခေတ်မီသော ဒေတာအမြင်များကို ဖန်တီးနိုင်သည်။ ![3d plots](../../../../3-Data-Visualization/13-meaningful-visualizations/images/3d.png) ## အနုစိတ်လှုပ်ရှားမှုနှင့် 3D ချတ်ဖန်တီးခြင်း ယနေ့အချိန်တွင် အကောင်းဆုံး ဒေတာအမြင်များသည် အနုစိတ်လှုပ်ရှားမှုပါဝင်သည်။ Shirley Wu သည် D3 ကို အသုံးပြု၍ '[film flowers](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)' ကဲ့သို့သော အံ့ဩဖွယ်အမြင်များ ဖန်တီးထားသည်။ နောက်ထပ် ဥပမာတစ်ခုမှာ Guardian မှ 'bussed out' ဖြစ်ပြီး၊ NYC သည် မိမိမြို့၏ အိမ်မဲ့သူများကို မြို့မှ ထွက်ခွာစေသည့် နည်းလမ်းကို ဖော်ပြရန် Greensock နှင့် D3 ကို အသုံးပြု၍ visualizations နှင့် scrollytelling article format ကို ပေါင်းစပ်ထားသည်။ ![busing](../../../../3-Data-Visualization/13-meaningful-visualizations/images/busing.png) > "Bussed Out: How America Moves its Homeless" from [the Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Visualizations by Nadieh Bremer & Shirley Wu ဤသင်ခန်းစာသည် visualization libraries အားလုံးကို အနက်နက်သင်ပေးရန် မလုံလောက်သော်လည်း၊ Vue.js app တွင် D3 ကို အသုံးပြု၍ 'Dangerous Liaisons' စာအုပ်၏ animated social network visualization ကို ဖန်တီးကြည့်ပါ။ > "Les Liaisons Dangereuses" သည် စာလုံးများစွာဖြင့် ဖော်ပြထားသော စာအုပ်တစ်ခုဖြစ်သည်။ 1782 ခုနှစ်တွင် Choderlos de Laclos မှ ရေးသားခဲ့ပြီး၊ 18 ရာစုအလယ်ပိုင်းတွင် ပြင်သစ်အနိဌာရုံ၏ လူမှုရေးဆိုင်ရာ အကြမ်းဖက်မှုများကို ဖော်ပြထားသည်။ စာအုပ်သည် စာလုံးများစွာဖြင့် ဖော်ပြထားပြီး၊ လူမှုရေးဆိုင်ရာ အကြမ်းဖက်မှုများကို ဖော်ပြထားသည်။ ဤစာလုံးများကို visualization ဖန်တီး၍ အဓိကဇာတ်ကောင်များကို အမြင်အနေနှင့် ရှာဖွေပါ။ သင်သည် Vue.js နှင့် D3 ကို အသုံးပြု၍ စာအုပ်၏ social network ကို animated view အဖြစ် ဖော်ပြမည့် web app ကို ပြီးစီးမည်ဖြစ်သည်။ app ကို run လုပ်နေစဉ်၊ node များကို screen ပေါ်တွင် ဆွဲ၍ ဒေတာကို ပြောင်းလဲနိုင်သည်။ ![liaisons](../../../../3-Data-Visualization/13-meaningful-visualizations/images/liaisons.png) ## Project: D3.js ကို အသုံးပြု၍ network ကို ဖော်ပြသော ချတ်တစ်ခု ဖန်တီးပါ > ဤသင်ခန်းစာ folder တွင် `solution` folder ပါဝင်ပြီး၊ ပြီးစီးထားသော project ကို ရှာဖွေနိုင်ပါသည်။ 1. starter folder ရှိ root တွင် README.md ဖိုင်ရှိသော အညွှန်းများကို လိုက်နာပါ။ သင်၏ project dependencies များကို install လုပ်မီ NPM နှင့် Node.js ကို သင့်စက်တွင် run လုပ်ထားပါ။ 2. `starter/src` folder ကို ဖွင့်ပါ။ `assets` folder တွင် novel မှ စာလုံးများအားလုံးပါဝင်သော .json ဖိုင်တစ်ခုကို ရှာဖွေနိုင်ပါမည်။ ဖိုင်တွင် 'to' နှင့် 'from' annotation ပါဝင်သည်။ 3. `components/Nodes.vue` တွင် code ကို ပြီးစီးပါ။ `createLinks()` ဟုခေါ်သော method ကို ရှာပြီး၊ အောက်ပါ nested loop ကို ထည့်ပါ။ Loop ကို .json object တွင် run လုပ်၍ စာလုံးများ၏ 'to' နှင့် 'from' ဒေတာကို capture လုပ်ပြီး၊ visualization library သုံးနိုင်ရန် `links` object ကို ဖွဲ့စည်းပါ။ ```javascript //loop through letters let f = 0; let t = 0; for (var i = 0; i < letters.length; i++) { for (var j = 0; j < characters.length; j++) { if (characters[j] == letters[i].from) { f = j; } if (characters[j] == letters[i].to) { t = j; } } this.links.push({ sid: f, tid: t }); } ``` Terminal မှ app ကို run လုပ်ပါ (npm run serve) နှင့် visualization ကို ခံစားပါ။ ## 🚀 Challenge အင်တာနက်ပေါ်တွင် လှည့်စားသော visualizations များကို ရှာဖွေပါ။ အရေးသားသူသည် အသုံးပြုသူကို လှည့်စားသည့် နည်းလမ်းများကို ရှာဖွေပါ၊ intentional ဖြစ်ပါသလား? visualizations များကို ပြင်ဆင်၍ အမှန်တစ်ကယ်ဖြစ်ရပ်ကို ဖော်ပြပါ။ ## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ds/quiz/25) ## Review & Self Study လှည့်စားသော ဒေတာအမြင်များအကြောင်း ဖတ်ရှုရန် ဆောင်းပါးများ - https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ သမိုင်းဆိုင်ရာ assets နှင့် artifacts အတွက် စိတ်ဝင်စားဖွယ် visualizations များကို ကြည့်ပါ - https://handbook.pubpub.org/ animation သည် visualizations များကို ဘယ်လိုတိုးတက်စေနိုင်သည်ကို ဖော်ပြထားသော ဆောင်းပါ --- **အကြောင်းကြားချက်**: ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအတွက် ကြိုးစားနေသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ခြင်းတွင် အမှားများ သို့မဟုတ် မတိကျမှုများ ပါဝင်နိုင်သည်ကို သတိပြုပါ။ မူရင်းဘာသာစကားဖြင့် ရေးသားထားသော စာရွက်စာတမ်းကို အာဏာရှိသော ရင်းမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူက ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော အလွဲအလွဲအချော်များ သို့မဟုတ် အနားလွဲမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။