|
|
1 year ago | |
|---|---|---|
| .. | ||
| solution | 1 year ago | |
| README.md | 1 year ago | |
| assignment.md | 1 year ago | |
| notebook.ipynb | 1 year ago | |
README.md
مقداروں کی بصری نمائندگی
![]() |
|---|
| مقداروں کی بصری نمائندگی - اسکیچ نوٹ از @nitya |
اس سبق میں آپ سیکھیں گے کہ کس طرح پائتھون کی مختلف لائبریریوں میں سے ایک کا استعمال کرتے ہوئے مقدار کے تصور کے گرد دلچسپ بصری نمائندگی بنائی جا سکتی ہے۔ منیسوٹا کے پرندوں کے بارے میں صاف شدہ ڈیٹا سیٹ کا استعمال کرتے ہوئے، آپ مقامی جنگلی حیات کے بارے میں کئی دلچسپ حقائق جان سکتے ہیں۔
لیکچر سے پہلے کا کوئز
ونگ اسپین کا مشاہدہ کریں Matplotlib کے ساتھ
ایک شاندار لائبریری جو مختلف قسم کے سادہ اور پیچیدہ گراف اور چارٹس بنانے کے لیے استعمال ہوتی ہے وہ ہے Matplotlib۔ عمومی طور پر، ان لائبریریوں کا استعمال کرتے ہوئے ڈیٹا کو گراف میں پیش کرنے کا عمل شامل ہوتا ہے: اپنے ڈیٹا فریم کے ان حصوں کی نشاندہی کرنا جنہیں آپ ہدف بنانا چاہتے ہیں، ضروری ڈیٹا پر تبدیلیاں کرنا، اس کے x اور y محور کی قدریں تفویض کرنا، یہ فیصلہ کرنا کہ کون سا گراف دکھانا ہے، اور پھر گراف کو ظاہر کرنا۔ Matplotlib مختلف قسم کی بصری نمائندگی پیش کرتا ہے، لیکن اس سبق کے لیے، ہم ان پر توجہ مرکوز کریں گے جو مقدار کو ظاہر کرنے کے لیے سب سے زیادہ موزوں ہیں: لائن چارٹس، اسکیٹر پلاٹس، اور بار پلاٹس۔
✅ اپنے ڈیٹا کی ساخت اور کہانی کے مطابق بہترین چارٹ کا انتخاب کریں۔
- وقت کے ساتھ رجحانات کا تجزیہ کرنے کے لیے: لائن
- قدروں کا موازنہ کرنے کے لیے: بار، کالم، پائی، اسکیٹر پلاٹ
- یہ دکھانے کے لیے کہ حصے پورے سے کیسے تعلق رکھتے ہیں: پائی
- ڈیٹا کی تقسیم کو ظاہر کرنے کے لیے: اسکیٹر پلاٹ، بار
- رجحانات دکھانے کے لیے: لائن، کالم
- قدروں کے درمیان تعلقات ظاہر کرنے کے لیے: لائن، اسکیٹر پلاٹ، ببل
اگر آپ کے پاس ایک ڈیٹا سیٹ ہے اور آپ کو یہ معلوم کرنا ہے کہ کسی دیے گئے آئٹم کی کتنی مقدار شامل ہے، تو آپ کا پہلا کام اس کی قدروں کا معائنہ کرنا ہوگا۔
✅ Matplotlib کے لیے بہت اچھے 'چیٹ شیٹس' یہاں دستیاب ہیں۔
پرندوں کے ونگ اسپین کی قدروں پر لائن گراف بنائیں
سبق کے فولڈر کے روٹ میں موجود notebook.ipynb فائل کھولیں اور ایک سیل شامل کریں۔
نوٹ: ڈیٹا اس ریپو کے روٹ میں
/dataفولڈر میں محفوظ ہے۔
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 |
آئیے ان دلچسپ پرندوں کے زیادہ سے زیادہ ونگ اسپین کی قدروں کو ایک بنیادی لائن گراف کے ذریعے پیش کرتے ہیں۔
wingspan = birds['MaxWingspan']
wingspan.plot()
آپ کو فوراً کیا نظر آتا ہے؟ کم از کم ایک آؤٹ لائر موجود ہے - یہ کافی بڑا ونگ اسپین ہے! 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()
یہاں تک کہ لیبلز کو 45 ڈگری پر گھمانے کے باوجود، انہیں پڑھنا مشکل ہے۔ آئیے ایک مختلف حکمت عملی آزماتے ہیں: صرف ان آؤٹ لائرز کو لیبل کریں اور لیبلز کو گراف کے اندر رکھیں۔ آپ لیبلنگ کے لیے مزید جگہ بنانے کے لیے ایک اسکیٹر چارٹ استعمال کر سکتے ہیں:
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)) اور پرندے کے نام کو لیبل کے طور پر استعمال کیا۔
آپ نے کیا دریافت کیا؟
اپنے ڈیٹا کو فلٹر کریں
بالڈ ایگل اور پریری فالکن، اگرچہ شاید بہت بڑے پرندے ہیں، لیکن ان کے زیادہ سے زیادہ ونگ اسپین میں ایک اضافی 0 شامل ہونے کی وجہ سے غلط لیبل لگے ہوئے نظر آتے ہیں۔ یہ ممکن نہیں ہے کہ آپ 25 میٹر ونگ اسپین والے بالڈ ایگل سے ملیں، لیکن اگر ایسا ہو تو براہ کرم ہمیں بتائیں! آئیے ان دو آؤٹ لائرز کے بغیر ایک نیا ڈیٹا فریم بناتے ہیں:
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()
آؤٹ لائرز کو فلٹر کرنے سے، آپ کا ڈیٹا اب زیادہ مربوط اور سمجھنے میں آسان ہو گیا ہے۔
اب جب کہ ہمارے پاس کم از کم ونگ اسپین کے لحاظ سے ایک صاف ستھرا ڈیٹا سیٹ ہے، آئیے ان پرندوں کے بارے میں مزید دریافت کریں۔
اگرچہ لائن اور اسکیٹر پلاٹس ڈیٹا کی قدروں اور ان کی تقسیم کے بارے میں معلومات ظاہر کر سکتے ہیں، ہم اس ڈیٹا سیٹ میں موجود قدروں کے بارے میں سوچنا چاہتے ہیں۔ آپ بصری نمائندگی بنا سکتے ہیں تاکہ مقدار کے بارے میں درج ذیل سوالات کے جوابات دیے جا سکیں:
کتنے زمرے کے پرندے ہیں، اور ان کی تعداد کیا ہے؟
کتنے پرندے معدوم، خطرے میں، نایاب، یا عام ہیں؟
لینیس کے اصطلاحات میں مختلف جینس اور آرڈرز کی تعداد کتنی ہے؟
بار چارٹس کا جائزہ لیں
جب آپ کو ڈیٹا کے گروپوں کو ظاہر کرنے کی ضرورت ہو تو بار چارٹس عملی ہوتے ہیں۔ آئیے اس ڈیٹا سیٹ میں موجود پرندوں کے زمرے کا جائزہ لیں تاکہ یہ دیکھا جا سکے کہ تعداد کے لحاظ سے کون سا سب سے عام ہے۔
نوٹ بک فائل میں ایک بنیادی بار چارٹ بنائیں۔
✅ نوٹ کریں، آپ ان دو آؤٹ لائر پرندوں کو فلٹر کر سکتے ہیں جن کی نشاندہی ہم نے پچھلے حصے میں کی، ان کے ونگ اسپین میں ٹائپو کو درست کر سکتے ہیں، یا انہیں ان مشقوں کے لیے چھوڑ سکتے ہیں جو ونگ اسپین کی قدروں پر انحصار نہیں کرتے۔
اگر آپ بار چارٹ بنانا چاہتے ہیں، تو آپ اس ڈیٹا کو منتخب کر سکتے ہیں جس پر آپ توجہ مرکوز کرنا چاہتے ہیں۔ بار چارٹس خام ڈیٹا سے بنائے جا سکتے ہیں:
birds.plot(x='Category',
kind='bar',
stacked=True,
title='Birds of Minnesota')
تاہم، یہ بار چارٹ ناقابل پڑھائی ہے کیونکہ اس میں بہت زیادہ غیر گروپ شدہ ڈیٹا ہے۔ آپ کو صرف اس ڈیٹا کو منتخب کرنے کی ضرورت ہے جسے آپ گراف میں پیش کرنا چاہتے ہیں، تو آئیے پرندے کے زمرے کی بنیاد پر لمبائی دیکھیں۔
اپنے ڈیٹا کو صرف پرندے کے زمرے تک محدود کریں۔
✅ نوٹ کریں کہ آپ ڈیٹا کو منظم کرنے کے لیے Pandas کا استعمال کرتے ہیں، اور پھر چارٹنگ کے لیے Matplotlib کا استعمال کرتے ہیں۔
چونکہ زمرے بہت زیادہ ہیں، آپ اس چارٹ کو عمودی طور پر ظاہر کر سکتے ہیں اور تمام ڈیٹا کو شامل کرنے کے لیے اس کی اونچائی کو ایڈجسٹ کر سکتے ہیں:
category_count = birds.value_counts(birds['Category'].values, sort=True)
plt.rcParams['figure.figsize'] = [6, 12]
category_count.plot.barh()
یہ بار چارٹ ہر زمرے میں پرندوں کی تعداد کا ایک اچھا نظارہ پیش کرتا ہے۔ ایک نظر میں، آپ دیکھ سکتے ہیں کہ اس علاقے میں سب سے زیادہ تعداد بطخ/ہنس/آبی پرندے کے زمرے میں ہے۔ منیسوٹا '10,000 جھیلوں کی سرزمین' ہے، لہذا یہ حیرت کی بات نہیں ہے!
✅ اس ڈیٹا سیٹ پر کچھ اور گنتیاں آزمائیں۔ کیا آپ کو کچھ حیران کرتا ہے؟
ڈیٹا کا موازنہ
آپ نئے محور بنا کر گروپ شدہ ڈیٹا کے مختلف موازنوں کو آزما سکتے ہیں۔ پرندے کے زمرے کی بنیاد پر زیادہ سے زیادہ لمبائی کا موازنہ کرنے کی کوشش کریں:
maxlength = birds['MaxLength']
plt.barh(y=birds['Category'], width=maxlength)
plt.rcParams['figure.figsize'] = [6, 12]
plt.show()
یہاں کچھ حیران کن نہیں ہے: ہمنگ برڈز کی زیادہ سے زیادہ لمبائی پیلکنز یا ہنسوں کے مقابلے میں سب سے کم ہے۔ یہ اچھا ہے جب ڈیٹا منطقی طور پر سمجھ میں آتا ہے!
آپ بار چارٹس کی مزید دلچسپ بصری نمائندگی بنا سکتے ہیں ڈیٹا کو اوورلیپ کر کے۔ آئیے کسی دیے گئے پرندے کے زمرے پر کم از کم اور زیادہ سے زیادہ لمبائی کو اوورلیپ کریں:
minLength = birds['MinLength']
maxLength = birds['MaxLength']
category = birds['Category']
plt.barh(category, maxLength)
plt.barh(category, minLength)
plt.show()
اس گراف میں، آپ پرندے کے زمرے کے لحاظ سے کم از کم اور زیادہ سے زیادہ لمبائی کی حد دیکھ سکتے ہیں۔ آپ محفوظ طریقے سے کہہ سکتے ہیں کہ، اس ڈیٹا کے مطابق، جتنا بڑا پرندہ، اتنی ہی اس کی لمبائی کی حد زیادہ ہوتی ہے۔ دلچسپ!
🚀 چیلنج
یہ پرندوں کا ڈیٹا سیٹ ایک خاص ماحولیاتی نظام کے اندر مختلف قسم کے پرندوں کے بارے میں معلومات کا خزانہ پیش کرتا ہے۔ انٹرنیٹ پر تلاش کریں اور دیکھیں کہ کیا آپ پرندوں پر مبنی دیگر ڈیٹا سیٹس تلاش کر سکتے ہیں۔ ان پرندوں کے گرد گراف اور چارٹس بنانے کی مشق کریں تاکہ وہ حقائق دریافت کریں جن کا آپ کو اندازہ نہیں تھا۔
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
اس پہلے سبق نے آپ کو یہ معلومات دی ہے کہ مقداروں کو بصری طور پر پیش کرنے کے لیے Matplotlib کا استعمال کیسے کیا جا سکتا ہے۔ ڈیٹا سیٹس کے ساتھ کام کرنے کے دیگر طریقوں پر تحقیق کریں تاکہ بصری نمائندگی بنائی جا سکے۔ Plotly ایک ایسا ذریعہ ہے جسے ہم ان اسباق میں شامل نہیں کریں گے، لہذا دیکھیں کہ یہ کیا پیش کر سکتا ہے۔
اسائنمنٹ
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔








