# সম্পর্কের ভিজ্যুয়ালাইজেশন: মধুর গল্প 🍯 |![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| |:---:| |সম্পর্কের ভিজ্যুয়ালাইজেশন - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | আমাদের গবেষণার প্রকৃতি-কেন্দ্রিক দৃষ্টিভঙ্গি অব্যাহত রেখে, চলুন বিভিন্ন ধরনের মধুর মধ্যে সম্পর্ক দেখানোর জন্য আকর্ষণীয় ভিজ্যুয়ালাইজেশন আবিষ্কার করি। এই ডেটাসেটটি [United States Department of Agriculture](https://www.nass.usda.gov/About_NASS/index.php) থেকে প্রাপ্ত। এই ডেটাসেটে প্রায় ৬০০টি আইটেম রয়েছে যা বিভিন্ন মার্কিন যুক্তরাষ্ট্রের রাজ্যে মধু উৎপাদন প্রদর্শন করে। উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট রাজ্যের জন্য ১৯৯৮-২০১২ সময়কালে প্রতি বছর প্রতি রাজ্যের জন্য এক সারি সহ কলোনির সংখ্যা, প্রতি কলোনির উৎপাদন, মোট উৎপাদন, স্টক, প্রতি পাউন্ডের দাম এবং উৎপাদিত মধুর মূল্য দেখতে পারেন। একটি নির্দিষ্ট রাজ্যের বার্ষিক উৎপাদন এবং সেই রাজ্যে মধুর দামের মধ্যে সম্পর্ক দেখানো আকর্ষণীয় হবে। বিকল্পভাবে, আপনি রাজ্যগুলির প্রতি কলোনির মধু উৎপাদনের মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করতে পারেন। এই সময়কালটি ২০০৬ সালে প্রথম দেখা 'CCD' বা 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) এর ধ্বংসাত্মক প্রভাবকে অন্তর্ভুক্ত করে, তাই এটি অধ্যয়নের জন্য একটি গুরুত্বপূর্ণ ডেটাসেট। 🐝 ## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) এই পাঠে, আপনি ggplot2 ব্যবহার করতে পারেন, যা আপনি আগে ব্যবহার করেছেন, ভেরিয়েবলগুলির মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করার জন্য একটি ভালো লাইব্রেরি হিসেবে। বিশেষভাবে আকর্ষণীয় হল ggplot2 এর `geom_point` এবং `qplot` ফাংশন যা দ্রুত '[statistical relationships](https://ggplot2.tidyverse.org/)' দেখানোর জন্য স্ক্যাটার প্লট এবং লাইন প্লট তৈরি করতে দেয়, যা ডেটা বিজ্ঞানীদের ভেরিয়েবলগুলির মধ্যে সম্পর্ক আরও ভালোভাবে বুঝতে সাহায্য করে। ## স্ক্যাটারপ্লট স্ক্যাটারপ্লট ব্যবহার করে দেখান কীভাবে প্রতি রাজ্যে মধুর দাম বছর বছর পরিবর্তিত হয়েছে। ggplot2, `ggplot` এবং `geom_point` ব্যবহার করে, রাজ্যের ডেটা গ্রুপ করে এবং উভয় ক্যাটাগরিকাল এবং সংখ্যাগত ডেটার জন্য ডেটা পয়েন্ট প্রদর্শন করে। চলুন ডেটা এবং Seaborn আমদানি করে শুরু করি: ```r honey=read.csv('../../data/honey.csv') head(honey) ``` আপনি লক্ষ্য করবেন যে মধুর ডেটায় বেশ কয়েকটি আকর্ষণীয় কলাম রয়েছে, যার মধ্যে বছর এবং প্রতি পাউন্ডের দাম অন্তর্ভুক্ত। চলুন এই ডেটা অন্বেষণ করি, মার্কিন যুক্তরাষ্ট্রের রাজ্য অনুযায়ী গ্রুপ করে: | 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 | | FL | 230000 | 98 |22540000 | 4508000 | 0.64 | 14426000 | 1998 | প্রতি পাউন্ড মধুর দাম এবং তার মার্কিন যুক্তরাষ্ট্রের উৎপত্তি রাজ্যের মধ্যে সম্পর্ক দেখানোর জন্য একটি সাধারণ স্ক্যাটারপ্লট তৈরি করুন। `y` অক্ষটি যথেষ্ট লম্বা করুন যাতে সমস্ত রাজ্য প্রদর্শিত হয়: ```r library(ggplot2) ggplot(honey, aes(x = priceperlb, y = state)) + geom_point(colour = "blue") ``` ![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.bn.png) এখন, একই ডেটা একটি মধু রঙের স্কিম দিয়ে দেখান যাতে বছরের পর বছর দাম কীভাবে পরিবর্তিত হয়েছে তা প্রদর্শিত হয়। এটি করতে, 'scale_color_gradientn' প্যারামিটার যোগ করুন যা পরিবর্তন দেখায়: > ✅ [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) সম্পর্কে আরও জানুন - একটি সুন্দর রংধনু রঙের স্কিম চেষ্টা করুন! ```r ggplot(honey, aes(x = priceperlb, y = state, color=year)) + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) ``` ![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.bn.png) এই রঙের স্কিম পরিবর্তনের মাধ্যমে, আপনি দেখতে পারেন যে প্রতি পাউন্ড মধুর দামের ক্ষেত্রে বছরের পর বছর একটি শক্তিশালী অগ্রগতি রয়েছে। আসলে, যদি আপনি ডেটার একটি নমুনা সেট পরীক্ষা করেন (উদাহরণস্বরূপ, একটি নির্দিষ্ট রাজ্য, অ্যারিজোনা), আপনি দেখতে পাবেন যে বছরের পর বছর দামের বৃদ্ধির একটি প্যাটার্ন রয়েছে, কয়েকটি ব্যতিক্রম সহ: | 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 | আরেকটি উপায় হল রঙের পরিবর্তে আকার ব্যবহার করা। রঙ-অন্ধ ব্যবহারকারীদের জন্য এটি একটি ভালো বিকল্প হতে পারে। আপনার ভিজ্যুয়ালাইজেশন সম্পাদনা করুন যাতে ডটের পরিধি বৃদ্ধির মাধ্যমে দামের বৃদ্ধি দেখানো যায়: ```r ggplot(honey, aes(x = priceperlb, y = state)) + geom_point(aes(size = year),colour = "blue") + scale_size_continuous(range = c(0.25, 3)) ``` আপনি দেখতে পাবেন ডটের আকার ধীরে ধীরে বৃদ্ধি পাচ্ছে। ![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.bn.png) এটি কি সরবরাহ এবং চাহিদার একটি সাধারণ ঘটনা? জলবায়ু পরিবর্তন এবং কলোনি ধ্বংসের মতো কারণগুলির কারণে, প্রতি বছর কেনার জন্য কম মধু পাওয়া যাচ্ছে, এবং তাই দাম বাড়ছে? এই ডেটাসেটে কিছু ভেরিয়েবলের মধ্যে সম্পর্ক আবিষ্কার করতে, চলুন কিছু লাইন চার্ট অন্বেষণ করি। ## লাইন চার্ট প্রশ্ন: প্রতি পাউন্ড মধুর দামে বছর বছর কি একটি স্পষ্ট বৃদ্ধি দেখা যায়? আপনি এটি সবচেয়ে সহজে একটি একক লাইন চার্ট তৈরি করে আবিষ্কার করতে পারেন: ```r qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") ``` উত্তর: হ্যাঁ, ২০০৩ সালের আশেপাশে কিছু ব্যতিক্রম সহ: ![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.bn.png) প্রশ্ন: তাহলে, ২০০৩ সালে মধুর সরবরাহে কি কোনো স্পাইক দেখা যায়? যদি আপনি বছর বছর মোট উৎপাদন দেখেন? ```python qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") ``` ![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.bn.png) উত্তর: আসলে না। যদি আপনি মোট উৎপাদন দেখেন, এটি সেই নির্দিষ্ট বছরে বৃদ্ধি পেয়েছে বলে মনে হয়, যদিও সাধারণভাবে এই বছরগুলিতে উৎপাদিত মধুর পরিমাণ হ্রাস পাচ্ছে। প্রশ্ন: সেই ক্ষেত্রে, ২০০৩ সালের আশেপাশে মধুর দামের স্পাইক কী কারণে হতে পারে? এটি আবিষ্কার করতে, আপনি একটি ফ্যাসেট গ্রিড অন্বেষণ করতে পারেন। ## ফ্যাসেট গ্রিড ফ্যাসেট গ্রিড আপনার ডেটাসেটের একটি ফ্যাসেট (আমাদের ক্ষেত্রে, আপনি 'year' বেছে নিতে পারেন যাতে খুব বেশি ফ্যাসেট তৈরি না হয়) গ্রহণ করে। Seaborn তারপর আপনার নির্বাচিত x এবং y কোঅর্ডিনেটের জন্য প্রতিটি ফ্যাসেটের একটি প্লট তৈরি করতে পারে যা তুলনা সহজ করে। এই ধরনের তুলনায় ২০০৩ কি আলাদা করে দাঁড়ায়? [ggplot2 এর ডকুমেন্টেশন](https://ggplot2.tidyverse.org/reference/facet_wrap.html) অনুযায়ী `facet_wrap` ব্যবহার করে একটি ফ্যাসেট গ্রিড তৈরি করুন। ```r ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + geom_line() + facet_wrap(vars(year)) ``` এই ভিজ্যুয়ালাইজেশনে, আপনি প্রতি কলোনির উৎপাদন এবং কলোনির সংখ্যা বছর বছর, রাজ্য রাজ্য পাশাপাশি তুলনা করতে পারেন, যেখানে কলামের জন্য wrap 3 সেট করা হয়েছে: ![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.bn.png) এই ডেটাসেটের জন্য, রাজ্য রাজ্য এবং বছর বছর কলোনির সংখ্যা এবং তাদের উৎপাদনের ক্ষেত্রে কিছুই বিশেষভাবে আলাদা করে দাঁড়ায় না। এই দুটি ভেরিয়েবলের মধ্যে সম্পর্ক খুঁজে বের করার জন্য দেখার অন্য কোনো উপায় কি আছে? ## ডুয়াল-লাইন প্লট R এর `par` এবং `plot` ফাংশন ব্যবহার করে দুটি লাইনপ্লট একটির উপর অন্যটি সুপারইম্পোজ করে একটি মাল্টিলাইন প্লট চেষ্টা করুন। আমরা x অক্ষে বছর প্লট করব এবং দুটি y অক্ষ প্রদর্শন করব। তাই, প্রতি কলোনির উৎপাদন এবং কলোনির সংখ্যা প্রদর্শন করুন, সুপারইম্পোজ করে: ```r par(mar = c(5, 4, 4, 4) + 0.3) plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") par(new = TRUE) plot(honey$year, honey$yieldpercol, pch = 17, col = 3, axes = FALSE, xlab = "", ylab = "",type="l") axis(side = 4, at = pretty(range(y2))) mtext("colony yield", side = 4, line = 3) ``` ![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.bn.png) যদিও ২০০৩ সালের আশেপাশে চোখে কিছুই ধরা পড়ে না, এটি আমাদের এই পাঠটি একটি সামান্য সুখী নোটে শেষ করার অনুমতি দেয়: যদিও সামগ্রিকভাবে কলোনির সংখ্যা হ্রাস পাচ্ছে, কলোনির সংখ্যা স্থিতিশীল হচ্ছে যদিও তাদের প্রতি কলোনির উৎপাদন হ্রাস পাচ্ছে। চলো, মৌমাছি, চলো! 🐝❤️ ## 🚀 চ্যালেঞ্জ এই পাঠে, আপনি স্ক্যাটারপ্লট এবং লাইন গ্রিডের অন্যান্য ব্যবহার সম্পর্কে আরও কিছু শিখেছেন, যার মধ্যে ফ্যাসেট গ্রিড অন্তর্ভুক্ত। নিজেকে চ্যালেঞ্জ করুন একটি ভিন্ন ডেটাসেট ব্যবহার করে একটি ফ্যাসেট গ্রিড তৈরি করতে, সম্ভবত আপনি এই পাঠগুলির আগে যে ডেটাসেট ব্যবহার করেছেন। এগুলি তৈরি করতে কতক্ষণ সময় লাগে এবং এই কৌশলগুলি ব্যবহার করে কতগুলি গ্রিড আঁকতে হবে তা নিয়ে আপনাকে কতটা সতর্ক থাকতে হবে তা লক্ষ্য করুন। ## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) ## পর্যালোচনা ও স্ব-অধ্যয়ন লাইন প্লটগুলি সহজ বা বেশ জটিল হতে পারে। [ggplot2 ডকুমেন্টেশন](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together) এ কিছু পড়াশোনা করুন বিভিন্ন উপায়ে আপনি এগুলি তৈরি করতে পারেন। এই পাঠে আপনি যে লাইন চার্ট তৈরি করেছেন তা ডকসে তালিকাভুক্ত অন্যান্য পদ্ধতি দিয়ে উন্নত করার চেষ্টা করুন। ## অ্যাসাইনমেন্ট [Dive into the beehive](assignment.md) --- **অস্বীকৃতি**: এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই।