# مقداروں کی بصری نمائندگی |![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/09-Visualizing-Quantities.png)| |:---:| | مقداروں کی بصری نمائندگی - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | اس سبق میں آپ سیکھیں گے کہ کس طرح پائتھون کی مختلف لائبریریوں میں سے ایک کا استعمال کرتے ہوئے مقدار کے تصور کے گرد دلچسپ بصری نمائندگی تخلیق کی جا سکتی ہے۔ منیسوٹا کے پرندوں کے بارے میں صاف شدہ ڈیٹا سیٹ کا استعمال کرتے ہوئے، آپ مقامی جنگلی حیات کے بارے میں کئی دلچسپ حقائق جان سکتے ہیں۔ ## [لیکچر سے پہلے کا کوئز](https://ff-quizzes.netlify.app/en/ds/quiz/16) ## Matplotlib کے ساتھ پروں کے پھیلاؤ کا مشاہدہ کریں [Matplotlib](https://matplotlib.org/stable/index.html) ایک شاندار لائبریری ہے جو مختلف قسم کے سادہ اور پیچیدہ گراف اور چارٹس بنانے کے لیے استعمال ہوتی ہے۔ عمومی طور پر، ان لائبریریوں کے ذریعے ڈیٹا کو گراف میں پیش کرنے کا عمل ان حصوں کی نشاندہی سے شروع ہوتا ہے جنہیں آپ اپنے ڈیٹا فریم میں ہدف بنانا چاہتے ہیں، ڈیٹا پر ضروری تبدیلیاں کرنا، اس کے x اور y محور کی قدریں تفویض کرنا، گراف کی قسم کا انتخاب کرنا، اور پھر گراف کو دکھانا۔ Matplotlib مختلف قسم کی بصری نمائندگی پیش کرتا ہے، لیکن اس سبق میں ہم ان پر توجہ مرکوز کریں گے جو مقدار کو ظاہر کرنے کے لیے سب سے زیادہ موزوں ہیں: لائن چارٹس، اسکیٹر پلاٹس، اور بار پلاٹس۔ > ✅ اپنے ڈیٹا کی ساخت اور کہانی کے مطابق بہترین چارٹ کا انتخاب کریں۔ > - وقت کے ساتھ رجحانات کا تجزیہ کرنے کے لیے: لائن > - قدروں کا موازنہ کرنے کے لیے: بار، کالم، پائی، اسکیٹر پلاٹ > - یہ دکھانے کے لیے کہ حصے کل سے کیسے جڑے ہیں: پائی > - ڈیٹا کی تقسیم کو ظاہر کرنے کے لیے: اسکیٹر پلاٹ، بار > - رجحانات دکھانے کے لیے: لائن، کالم > - قدروں کے درمیان تعلقات ظاہر کرنے کے لیے: لائن، اسکیٹر پلاٹ، ببل اگر آپ کے پاس ایک ڈیٹا سیٹ ہے اور آپ کو یہ جاننے کی ضرورت ہے کہ کسی خاص آئٹم کی کتنی مقدار شامل ہے، تو آپ کا پہلا کام اس کی قدروں کا معائنہ کرنا ہوگا۔ ✅ Matplotlib کے لیے بہت عمدہ 'چیٹ شیٹس' [یہاں](https://matplotlib.org/cheatsheets/cheatsheets.pdf) دستیاب ہیں۔ ## پرندوں کے پروں کے پھیلاؤ کے بارے میں لائن گراف بنائیں سبق کے فولڈر کے روٹ میں موجود `notebook.ipynb` فائل کھولیں اور ایک سیل شامل کریں۔ > نوٹ: ڈیٹا اس ریپو کے روٹ میں `/data` فولڈر میں محفوظ ہے۔ ```python import pandas as pd import matplotlib.pyplot as plt birds = pd.read_csv('../../data/birds.csv') birds.head() ``` یہ ڈیٹا متن اور اعداد کا مرکب ہے: | | نام | سائنسی نام | زمرہ | آرڈر | خاندان | جینس | تحفظ کی حالت | کم از کم لمبائی | زیادہ سے زیادہ لمبائی | کم از کم جسمانی وزن | زیادہ سے زیادہ جسمانی وزن | کم از کم پروں کا پھیلاؤ | زیادہ سے زیادہ پروں کا پھیلاؤ | | ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | | 0 | بلیک بیلیڈ وسلنگ ڈک | Dendrocygna autumnalis | بطخیں/ہنس/آبی پرندے | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | | 1 | فلویس وسلنگ ڈک | Dendrocygna bicolor | بطخیں/ہنس/آبی پرندے | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | | 2 | سنو گوز | Anser caerulescens | بطخیں/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | | 3 | روس کا گوز | Anser rossii | بطخیں/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | | 4 | گریٹر وائٹ فرنٹڈ گوز | Anser albifrons | بطخیں/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | آئیے ان دلچسپ پرندوں کے زیادہ سے زیادہ پروں کے پھیلاؤ کو ایک بنیادی لائن گراف کے ذریعے پیش کریں۔ ```python wingspan = birds['MaxWingspan'] wingspan.plot() ``` ![زیادہ سے زیادہ پروں کا پھیلاؤ](../../../../3-Data-Visualization/09-visualization-quantities/images/max-wingspan-02.png) آپ نے فوراً کیا محسوس کیا؟ کم از کم ایک غیر معمولی قدر نظر آتی ہے - یہ تو بہت بڑا پروں کا پھیلاؤ ہے! 2300 سینٹی میٹر پروں کا پھیلاؤ 23 میٹر کے برابر ہے - کیا منیسوٹا میں پیٹروڈیکٹائلز گھوم رہے ہیں؟ آئیے اس کی تحقیق کریں۔ اگرچہ آپ ایکسل میں جلدی سے ان غیر معمولی قدروں کو ترتیب دے سکتے ہیں، لیکن گراف کے اندر سے کام جاری رکھیں۔ x محور پر پرندوں کی اقسام کے لیبل شامل کریں: ``` plt.title('Max Wingspan in Centimeters') plt.ylabel('Wingspan (CM)') plt.xlabel('Birds') plt.xticks(rotation=45) x = birds['Name'] y = birds['MaxWingspan'] plt.plot(x, y) plt.show() ``` ![لیبلز کے ساتھ پروں کا پھیلاؤ](../../../../3-Data-Visualization/09-visualization-quantities/images/max-wingspan-labels-02.png) لیبلز کو 45 ڈگری پر گھمانے کے باوجود، پڑھنے کے لیے بہت زیادہ ہیں۔ آئیے ایک مختلف حکمت عملی آزمائیں: صرف ان غیر معمولی قدروں کو لیبل کریں اور لیبلز کو گراف کے اندر رکھیں۔ آپ اسکیٹر چارٹ استعمال کر سکتے ہیں تاکہ لیبلنگ کے لیے مزید جگہ بن سکے: ```python plt.title('Max Wingspan in Centimeters') plt.ylabel('Wingspan (CM)') plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) for i in range(len(birds)): x = birds['Name'][i] y = birds['MaxWingspan'][i] plt.plot(x, y, 'bo') if birds['MaxWingspan'][i] > 500: plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) plt.show() ``` یہاں کیا ہو رہا ہے؟ آپ نے `tick_params` کا استعمال کرتے ہوئے نیچے کے لیبلز کو چھپایا اور پھر اپنے پرندوں کے ڈیٹا سیٹ پر ایک لوپ بنایا۔ `bo` کا استعمال کرتے ہوئے چھوٹے نیلے نقطے بنائے، اور کسی بھی پرندے کے لیے جس کا زیادہ سے زیادہ پروں کا پھیلاؤ 500 سے زیادہ ہو، اس کے نقطے کے ساتھ لیبل دکھایا۔ آپ نے لیبلز کو y محور پر تھوڑا سا آفسیٹ کیا (`y * (1 - 0.05)`) اور پرندے کے نام کو لیبل کے طور پر استعمال کیا۔ آپ نے کیا دریافت کیا؟ ![غیر معمولی قدریں](../../../../3-Data-Visualization/09-visualization-quantities/images/labeled-wingspan-02.png) ## اپنے ڈیٹا کو فلٹر کریں بالڈ ایگل اور پریری فالکن، اگرچہ شاید بہت بڑے پرندے ہیں، لیکن ان کے زیادہ سے زیادہ پروں کے پھیلاؤ میں اضافی `0` شامل ہے۔ یہ ممکن نہیں کہ آپ 25 میٹر پروں کے پھیلاؤ والے بالڈ ایگل سے ملیں، لیکن اگر ایسا ہو تو ہمیں ضرور بتائیں! آئیے ان دو غیر معمولی قدروں کے بغیر ایک نیا ڈیٹا فریم بنائیں: ```python plt.title('Max Wingspan in Centimeters') plt.ylabel('Wingspan (CM)') plt.xlabel('Birds') plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) for i in range(len(birds)): x = birds['Name'][i] y = birds['MaxWingspan'][i] if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: plt.plot(x, y, 'bo') plt.show() ``` غیر معمولی قدروں کو فلٹر کرنے سے، آپ کا ڈیٹا اب زیادہ مربوط اور سمجھنے میں آسان ہو گیا ہے۔ ![پروں کے پھیلاؤ کا اسکیٹر پلاٹ](../../../../3-Data-Visualization/09-visualization-quantities/images/scatterplot-wingspan-02.png) اب جب کہ ہمارے پاس پروں کے پھیلاؤ کے لحاظ سے ایک صاف ستھرا ڈیٹا سیٹ ہے، آئیے ان پرندوں کے بارے میں مزید دریافت کریں۔ لائن اور اسکیٹر پلاٹس ڈیٹا کی قدروں اور ان کی تقسیم کے بارے میں معلومات ظاہر کر سکتے ہیں، لیکن ہم اس ڈیٹا سیٹ میں موجود قدروں کے بارے میں سوچنا چاہتے ہیں۔ آپ بصری نمائندگی تخلیق کر سکتے ہیں تاکہ مقدار کے بارے میں درج ذیل سوالات کے جوابات دیے جا سکیں: > پرندوں کے کتنے زمرے ہیں، اور ان کی تعداد کیا ہے؟ > کتنے پرندے معدوم، خطرے میں، نایاب، یا عام ہیں؟ > لینیس کے اصطلاحات میں مختلف جینس اور آرڈرز کی تعداد کیا ہے؟ ## بار چارٹس کا جائزہ لیں جب آپ کو ڈیٹا کے گروپ دکھانے کی ضرورت ہو تو بار چارٹس عملی ہوتے ہیں۔ آئیے اس ڈیٹا سیٹ میں موجود پرندوں کے زمرے کا جائزہ لیں تاکہ یہ دیکھ سکیں کہ تعداد کے لحاظ سے کون سا سب سے عام ہے۔ نوٹ بک فائل میں ایک بنیادی بار چارٹ بنائیں۔ ✅ نوٹ کریں، آپ یا تو پچھلے حصے میں شناخت شدہ دو غیر معمولی پرندوں کو فلٹر کر سکتے ہیں، ان کے پروں کے پھیلاؤ میں ٹائپو کو درست کر سکتے ہیں، یا انہیں ان مشقوں کے لیے چھوڑ سکتے ہیں جو پروں کے پھیلاؤ کی قدروں پر انحصار نہیں کرتے۔ اگر آپ بار چارٹ بنانا چاہتے ہیں، تو آپ اس ڈیٹا کو منتخب کر سکتے ہیں جس پر آپ توجہ مرکوز کرنا چاہتے ہیں۔ بار چارٹس خام ڈیٹا سے بنائے جا سکتے ہیں: ```python birds.plot(x='Category', kind='bar', stacked=True, title='Birds of Minnesota') ``` ![مکمل ڈیٹا بطور بار چارٹ](../../../../3-Data-Visualization/09-visualization-quantities/images/full-data-bar-02.png) یہ بار چارٹ، تاہم، ناقابل پڑھائی ہے کیونکہ اس میں بہت زیادہ غیر گروپ شدہ ڈیٹا ہے۔ آپ کو صرف اس ڈیٹا کو منتخب کرنے کی ضرورت ہے جسے آپ گراف میں پیش کرنا چاہتے ہیں، تو آئیے پرندوں کی لمبائی کو ان کے زمرے کی بنیاد پر دیکھیں۔ اپنے ڈیٹا کو صرف پرندوں کے زمرے تک محدود کریں۔ ✅ نوٹ کریں کہ آپ ڈیٹا کو منظم کرنے کے لیے Pandas کا استعمال کرتے ہیں، اور پھر چارٹنگ کے لیے Matplotlib کا استعمال کرتے ہیں۔ چونکہ زمرے بہت زیادہ ہیں، آپ اس چارٹ کو عمودی طور پر دکھا سکتے ہیں اور تمام ڈیٹا کو شامل کرنے کے لیے اس کی اونچائی کو ایڈجسٹ کر سکتے ہیں: ```python category_count = birds.value_counts(birds['Category'].values, sort=True) plt.rcParams['figure.figsize'] = [6, 12] category_count.plot.barh() ``` ![زمرہ اور لمبائی](../../../../3-Data-Visualization/09-visualization-quantities/images/category-counts-02.png) یہ بار چارٹ ہر زمرے میں پرندوں کی تعداد کا ایک اچھا نظارہ پیش کرتا ہے۔ ایک نظر میں، آپ دیکھ سکتے ہیں کہ اس علاقے میں سب سے زیادہ تعداد بطخیں/ہنس/آبی پرندے کے زمرے میں ہے۔ منیسوٹا '10,000 جھیلوں کی سرزمین' ہے، لہذا یہ حیرت کی بات نہیں! ✅ اس ڈیٹا سیٹ پر کچھ اور گنتیاں آزمائیں۔ کیا کچھ آپ کو حیران کرتا ہے؟ ## ڈیٹا کا موازنہ کریں آپ گروپ شدہ ڈیٹا کے مختلف موازنوں کو نئے محور بنا کر آزما سکتے ہیں۔ پرندے کی زیادہ سے زیادہ لمبائی کا موازنہ اس کے زمرے کی بنیاد پر کریں: ```python maxlength = birds['MaxLength'] plt.barh(y=birds['Category'], width=maxlength) plt.rcParams['figure.figsize'] = [6, 12] plt.show() ``` ![ڈیٹا کا موازنہ](../../../../3-Data-Visualization/09-visualization-quantities/images/category-length-02.png) یہاں کچھ حیران کن نہیں: ہمبلنگ برڈز کی زیادہ سے زیادہ لمبائی پیلکنز یا ہنسوں کے مقابلے میں سب سے کم ہے۔ یہ اچھا ہے جب ڈیٹا منطقی طور پر سمجھ میں آتا ہے! آپ بار چارٹس کی مزید دلچسپ بصری نمائندگی تخلیق کر سکتے ہیں ڈیٹا کو اوورلیپ کر کے۔ آئیے کسی پرندے کے زمرے پر کم از کم اور زیادہ سے زیادہ لمبائی کو اوورلیپ کریں: ```python minLength = birds['MinLength'] maxLength = birds['MaxLength'] category = birds['Category'] plt.barh(category, maxLength) plt.barh(category, minLength) plt.show() ``` اس گراف میں، آپ ہر پرندے کے زمرے کے لیے کم از کم اور زیادہ سے زیادہ لمبائی کی حد دیکھ سکتے ہیں۔ آپ محفوظ طریقے سے کہہ سکتے ہیں کہ، اس ڈیٹا کے مطابق، جتنا بڑا پرندہ، اتنی ہی اس کی لمبائی کی حد زیادہ ہوتی ہے۔ دلچسپ! ![اوورلیپ شدہ قدریں](../../../../3-Data-Visualization/09-visualization-quantities/images/superimposed-02.png) ## 🚀 چیلنج یہ پرندوں کا ڈیٹا سیٹ ایک خاص ماحولیاتی نظام کے اندر مختلف قسم کے پرندوں کے بارے میں معلومات کا خزانہ پیش کرتا ہے۔ انٹرنیٹ پر تلاش کریں اور دیکھیں کہ کیا آپ پرندوں پر مبنی دیگر ڈیٹا سیٹس تلاش کر سکتے ہیں۔ ان پرندوں کے گرد گراف اور چارٹس بنانے کی مشق کریں تاکہ وہ حقائق دریافت کریں جن کا آپ کو اندازہ نہ تھا۔ ## [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ds/quiz/17) ## جائزہ اور خود مطالعہ اس پہلے سبق نے آپ کو یہ معلومات دی ہے کہ مقداروں کو بصری طور پر پیش کرنے کے لیے Matplotlib کا استعمال کیسے کیا جا سکتا ہے۔ ڈیٹا سیٹس کے ساتھ کام کرنے کے دیگر طریقوں پر تحقیق کریں تاکہ بصری نمائندگی تخلیق کی جا سکے۔ [Plotly](https://github.com/plotly/plotly.py) ایک ایسا ذریعہ ہے جسے ہم ان اسباق میں شامل نہیں کریں گے، لہذا دیکھیں کہ یہ کیا پیش کر سکتا ہے۔ ## اسائنمنٹ [لائنز، اسکیٹرز، اور بارز](assignment.md) --- **ڈسکلیمر**: یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔