17 KiB
شہد کے تعلقات کی بصری نمائندگی: شہد کے بارے میں سب کچھ 🍯
![]() |
|---|
| تعلقات کی بصری نمائندگی - Sketchnote by @nitya |
ہماری تحقیق کے قدرتی پہلو کو جاری رکھتے ہوئے، آئیے مختلف اقسام کے شہد کے تعلقات کو ظاہر کرنے کے لیے دلچسپ بصری نمائندگی دریافت کریں، جو کہ امریکہ کے محکمہ زراعت سے حاصل کردہ ڈیٹا سیٹ کے مطابق ہے۔
یہ ڈیٹا سیٹ تقریباً 600 آئٹمز پر مشتمل ہے جو امریکہ کی مختلف ریاستوں میں شہد کی پیداوار کو ظاہر کرتا ہے۔ مثال کے طور پر، آپ دیکھ سکتے ہیں کہ کسی دی گئی ریاست میں 1998 سے 2012 تک ہر سال کے لیے شہد کی پیداوار، کالونیوں کی تعداد، فی کالونی پیداوار، کل پیداوار، ذخائر، فی پاؤنڈ قیمت، اور پیداوار کی قدر کیا تھی۔
یہ دلچسپ ہوگا کہ کسی دی گئی ریاست کی سالانہ پیداوار اور اس ریاست میں شہد کی قیمت کے درمیان تعلق کو بصری طور پر ظاہر کیا جائے۔ متبادل طور پر، آپ ریاستوں کی فی کالونی شہد کی پیداوار کے تعلق کو ظاہر کر سکتے ہیں۔ یہ سالوں کا دورانیہ 2006 میں پہلی بار دیکھے گئے تباہ کن 'CCD' یا 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) کو بھی شامل کرتا ہے، لہذا یہ مطالعہ کے لیے ایک اہم ڈیٹا سیٹ ہے۔ 🐝
لیکچر سے پہلے کا کوئز
اس سبق میں، آپ Seaborn استعمال کر سکتے ہیں، جسے آپ پہلے بھی استعمال کر چکے ہیں، ایک اچھی لائبریری کے طور پر جو متغیرات کے درمیان تعلقات کو بصری طور پر ظاہر کرتی ہے۔ خاص طور پر دلچسپ ہے Seaborn کے relplot فنکشن کا استعمال، جو جلدی سے 'شماریاتی تعلقات' کو ظاہر کرنے کے لیے اسکیٹر پلاٹس اور لائن پلاٹس کی اجازت دیتا ہے، جو ڈیٹا سائنسدان کو بہتر طور پر سمجھنے میں مدد دیتا ہے کہ متغیرات ایک دوسرے سے کیسے تعلق رکھتے ہیں۔
اسکیٹر پلاٹس
اسکیٹر پلاٹ کا استعمال کریں تاکہ دکھایا جا سکے کہ شہد کی قیمت سال بہ سال، ہر ریاست کے لحاظ سے کیسے تبدیل ہوئی۔ Seaborn، relplot کا استعمال کرتے ہوئے، ریاست کے ڈیٹا کو گروپ کرتا ہے اور زمرہ جاتی اور عددی ڈیٹا کے لیے ڈیٹا پوائنٹس ظاہر کرتا ہے۔
آئیے ڈیٹا اور Seaborn کو درآمد کرنے سے شروع کریں:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
honey = pd.read_csv('../../data/honey.csv')
honey.head()
آپ دیکھیں گے کہ شہد کے ڈیٹا میں کئی دلچسپ کالمز ہیں، جن میں سال اور فی پاؤنڈ قیمت شامل ہیں۔ آئیے اس ڈیٹا کو دریافت کریں، جو امریکی ریاستوں کے لحاظ سے گروپ کیا گیا ہے:
| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year |
|---|---|---|---|---|---|---|---|
| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 |
| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 |
| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 |
| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 |
ایک بنیادی اسکیٹر پلاٹ بنائیں تاکہ فی پاؤنڈ شہد کی قیمت اور اس کی امریکی ریاست کے درمیان تعلق کو ظاہر کیا جا سکے۔ y محور کو اتنا لمبا بنائیں کہ تمام ریاستیں دکھائی دیں:
sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5);
اب، اسی ڈیٹا کو شہد کے رنگ سکیم کے ساتھ دکھائیں تاکہ یہ ظاہر ہو کہ قیمت سال بہ سال کیسے تبدیل ہوتی ہے۔ آپ یہ 'hue' پیرامیٹر شامل کر کے کر سکتے ہیں تاکہ تبدیلی کو ظاہر کیا جا سکے:
✅ Seaborn میں استعمال ہونے والے رنگ کے پیلیٹس کے بارے میں مزید جانیں - ایک خوبصورت رینبو رنگ سکیم آزمائیں!
sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5);
اس رنگ سکیم کی تبدیلی کے ساتھ، آپ دیکھ سکتے ہیں کہ سالوں کے دوران شہد کی قیمت میں واضح طور پر ایک مضبوط ترقی ہوئی ہے۔ درحقیقت، اگر آپ ڈیٹا کے ایک نمونے کو دیکھیں (مثال کے طور پر، ایریزونا ریاست کو منتخب کریں) تو آپ دیکھ سکتے ہیں کہ قیمت میں سال بہ سال اضافہ ہو رہا ہے، چند استثنائی صورتوں کے ساتھ:
| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year |
|---|---|---|---|---|---|---|---|
| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 |
| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 |
| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 |
| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 |
| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 |
| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 |
| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 |
| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 |
| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 |
| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 |
| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 |
| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 |
| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 |
| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 |
| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 |
ایک اور طریقہ یہ ہے کہ رنگ کے بجائے سائز کا استعمال کریں۔ رنگ اندھے صارفین کے لیے، یہ ایک بہتر آپشن ہو سکتا ہے۔ اپنی بصری نمائندگی کو اس طرح ایڈٹ کریں کہ قیمت میں اضافہ نقطے کے دائرے کے سائز میں اضافہ کے ذریعے ظاہر ہو:
sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5);
آپ دیکھ سکتے ہیں کہ نقطوں کا سائز بتدریج بڑھ رہا ہے۔
کیا یہ صرف طلب اور رسد کا معاملہ ہے؟ موسمیاتی تبدیلی اور کالونی کے خاتمے جیسے عوامل کی وجہ سے، کیا سال بہ سال خریداری کے لیے کم شہد دستیاب ہے، اور اس وجہ سے قیمت بڑھ رہی ہے؟
اس ڈیٹا سیٹ میں کچھ متغیرات کے درمیان تعلق کو دریافت کرنے کے لیے، آئیے کچھ لائن چارٹس کا جائزہ لیں۔
لائن چارٹس
سوال: کیا شہد کی قیمت میں سال بہ سال واضح اضافہ ہوا ہے؟ آپ یہ سب سے آسانی سے ایک سنگل لائن چارٹ بنا کر دریافت کر سکتے ہیں:
sns.relplot(x="year", y="priceperlb", kind="line", data=honey);
جواب: ہاں، کچھ استثنائی صورتوں کے ساتھ، خاص طور پر 2003 کے سال کے ارد گرد:
✅ چونکہ Seaborn ڈیٹا کو ایک لائن کے ارد گرد جمع کر رہا ہے، یہ "ہر x ویلیو پر متعدد پیمائشوں کو ظاہر کرتا ہے، اوسط اور اوسط کے ارد گرد 95% اعتماد کے وقفے کو پلاٹ کر کے"۔ ماخذ۔ اس وقت لینے والے رویے کو ci=None شامل کر کے غیر فعال کیا جا سکتا ہے۔
سوال: ٹھیک ہے، 2003 میں کیا ہم شہد کی سپلائی میں بھی اضافہ دیکھ سکتے ہیں؟ اگر آپ کل پیداوار کو سال بہ سال دیکھیں تو کیا ہوگا؟
sns.relplot(x="year", y="totalprod", kind="line", data=honey);
جواب: واقعی نہیں۔ اگر آپ کل پیداوار کو دیکھیں، تو ایسا لگتا ہے کہ اس خاص سال میں یہ درحقیقت بڑھ گئی ہے، حالانکہ عام طور پر ان سالوں کے دوران پیدا ہونے والے شہد کی مقدار میں کمی ہو رہی ہے۔
سوال: اس صورت میں، 2003 کے ارد گرد شہد کی قیمت میں اس اضافے کی وجہ کیا ہو سکتی ہے؟
یہ دریافت کرنے کے لیے، آپ ایک فیسٹ گرڈ کا جائزہ لے سکتے ہیں۔
فیسٹ گرڈز
فیسٹ گرڈز آپ کے ڈیٹا سیٹ کے ایک پہلو کو لیتے ہیں (ہمارے معاملے میں، آپ 'سال' کو منتخب کر سکتے ہیں تاکہ بہت زیادہ فیسٹس پیدا نہ ہوں)۔ پھر Seaborn آپ کے منتخب کردہ x اور y کوآرڈینیٹس کے لیے ہر فیسٹ کا پلاٹ بنا سکتا ہے تاکہ بصری موازنہ آسان ہو۔ کیا 2003 اس قسم کے موازنہ میں نمایاں ہے؟
Seaborn کی دستاویزات کے ذریعہ تجویز کردہ فیسٹ گرڈ کا استعمال کرتے ہوئے relplot کو جاری رکھ کر ایک فیسٹ گرڈ بنائیں۔
sns.relplot(
data=honey,
x="yieldpercol", y="numcol",
col="year",
col_wrap=3,
kind="line"
اس بصری نمائندگی میں، آپ فی کالونی پیداوار اور کالونیوں کی تعداد کو سال بہ سال، ریاست بہ ریاست، ایک ساتھ موازنہ کر سکتے ہیں، کالمز کے لیے wrap کو 3 پر سیٹ کر کے:
اس ڈیٹا سیٹ کے لیے، کالونیوں کی تعداد اور ان کی پیداوار کے لحاظ سے، سال بہ سال اور ریاست بہ ریاست، کچھ خاص نمایاں نہیں ہوتا۔ کیا ان دو متغیرات کے درمیان تعلق تلاش کرنے کے لیے دیکھنے کا کوئی مختلف طریقہ ہے؟
دوہری لائن پلاٹس
Seaborn کے 'despine' کا استعمال کرتے ہوئے دو لائن پلاٹس کو ایک دوسرے کے اوپر سپر امپوز کرنے کی کوشش کریں تاکہ ان کے اوپر اور دائیں اسپائنز کو ہٹا دیا جائے، اور ax.twinx Matplotlib سے ماخوذ کا استعمال کریں۔ Twinx ایک چارٹ کو x محور شیئر کرنے اور دو y محور ظاہر کرنے کی اجازت دیتا ہے۔ لہذا، فی کالونی پیداوار اور کالونیوں کی تعداد کو سپر امپوز کریں:
fig, ax = plt.subplots(figsize=(12,6))
lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey,
label = 'Number of bee colonies', legend=False)
sns.despine()
plt.ylabel('# colonies')
plt.title('Honey Production Year over Year');
ax2 = ax.twinx()
lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r",
label ='Yield per colony', legend=False)
sns.despine(right=False)
plt.ylabel('colony yield')
ax.figure.legend();
جبکہ 2003 کے سال کے ارد گرد کچھ بھی آنکھ کو نمایاں طور پر نہیں پکڑتا، یہ ہمیں اس سبق کو ایک خوشگوار نوٹ پر ختم کرنے کی اجازت دیتا ہے: جبکہ مجموعی طور پر کالونیوں کی تعداد میں کمی ہو رہی ہے، کالونیوں کی تعداد مستحکم ہو رہی ہے، چاہے ان کی فی کالونی پیداوار کم ہو رہی ہو۔
جاؤ، شہد کی مکھیوں، جاؤ!
🐝❤️
🚀 چیلنج
اس سبق میں، آپ نے اسکیٹر پلاٹس اور لائن گرڈز کے دیگر استعمالات کے بارے میں تھوڑا سا مزید سیکھا، بشمول فیسٹ گرڈز۔ خود کو چیلنج کریں کہ ایک مختلف ڈیٹا سیٹ کا استعمال کرتے ہوئے ایک فیسٹ گرڈ بنائیں، شاید وہ ڈیٹا سیٹ جو آپ نے ان اسباق سے پہلے استعمال کیا ہو۔ نوٹ کریں کہ انہیں بنانے میں کتنا وقت لگتا ہے اور آپ کو کتنے گرڈز بنانے کی ضرورت ہے ان تکنیکوں کا استعمال کرتے ہوئے محتاط رہنا ہوگا۔
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
لائن پلاٹس سادہ یا کافی پیچیدہ ہو سکتے ہیں۔ Seaborn کی دستاویزات میں لائن پلاٹس کے مختلف طریقوں پر تھوڑا سا مطالعہ کریں۔ ان طریقوں کو استعمال کرتے ہوئے اس سبق میں بنائے گئے لائن چارٹس کو بہتر بنانے کی کوشش کریں۔
اسائنمنٹ
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔







