15 KiB
تجسم نسبتها
![]() |
---|
تجسم نسبتها - طرح دستی توسط @nitya |
در این درس، شما از یک مجموعه داده با محوریت طبیعت استفاده خواهید کرد تا نسبتها را تجسم کنید، مانند تعداد انواع مختلف قارچهایی که در یک مجموعه داده مربوط به قارچها وجود دارند. بیایید این قارچهای جذاب را با استفاده از مجموعه دادهای که از Audubon گرفته شده و جزئیات مربوط به 23 گونه قارچهای تیغهدار در خانوادههای Agaricus و Lepiota را ارائه میدهد، بررسی کنیم. شما با تجسمهای خوشمزهای مانند موارد زیر آزمایش خواهید کرد:
- نمودارهای دایرهای 🥧
- نمودارهای دونات 🍩
- نمودارهای وافل 🧇
💡 یک پروژه بسیار جالب به نام Charticulator توسط Microsoft Research یک رابط کاربری رایگان برای تجسم دادهها ارائه میدهد. در یکی از آموزشهای آنها نیز از این مجموعه داده قارچ استفاده شده است! بنابراین میتوانید دادهها را بررسی کرده و همزمان کتابخانه را یاد بگیرید: آموزش Charticulator.
آزمون پیش از درس
با قارچهای خود آشنا شوید 🍄
قارچها بسیار جالب هستند. بیایید یک مجموعه داده وارد کنیم تا آنها را مطالعه کنیم:
mushrooms = read.csv('../../data/mushrooms.csv')
head(mushrooms)
یک جدول با دادههای عالی برای تحلیل چاپ میشود:
کلاس | شکل کلاهک | سطح کلاهک | رنگ کلاهک | کبودی | بو | اتصال تیغه | فاصله تیغه | اندازه تیغه | رنگ تیغه | شکل ساقه | ریشه ساقه | سطح ساقه بالای حلقه | سطح ساقه زیر حلقه | رنگ ساقه بالای حلقه | رنگ ساقه زیر حلقه | نوع پرده | رنگ پرده | تعداد حلقه | نوع حلقه | رنگ چاپ اسپور | جمعیت | زیستگاه |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
سمی | محدب | صاف | قهوهای | کبودی | تند | آزاد | نزدیک | باریک | سیاه | بزرگشونده | برابر | صاف | صاف | سفید | سفید | جزئی | سفید | یک | آویزان | سیاه | پراکنده | شهری |
خوراکی | محدب | صاف | زرد | کبودی | بادام | آزاد | نزدیک | پهن | سیاه | بزرگشونده | چماقی | صاف | صاف | سفید | سفید | جزئی | سفید | یک | آویزان | قهوهای | فراوان | چمنزار |
خوراکی | زنگولهای | صاف | سفید | کبودی | بادیان | آزاد | نزدیک | پهن | قهوهای | بزرگشونده | چماقی | صاف | صاف | سفید | سفید | جزئی | سفید | یک | آویزان | قهوهای | فراوان | مراتع |
سمی | محدب | فلسدار | سفید | کبودی | تند | آزاد | نزدیک | باریک | قهوهای | بزرگشونده | برابر | صاف | صاف | سفید | سفید | جزئی | سفید | یک | آویزان | سیاه | پراکنده | شهری |
خوراکی | محدب | صاف | سبز | بدون کبودی | هیچ | آزاد | شلوغ | پهن | سیاه | باریکشونده | برابر | صاف | صاف | سفید | سفید | جزئی | سفید | یک | ناپایدار | قهوهای | فراوان | چمنزار |
خوراکی | محدب | فلسدار | زرد | کبودی | بادام | آزاد | نزدیک | پهن | قهوهای | بزرگشونده | چماقی | صاف | صاف | سفید | سفید | جزئی | سفید | یک | آویزان | سیاه | فراوان | چمنزار |
بلافاصله متوجه میشوید که تمام دادهها متنی هستند. شما باید این دادهها را تبدیل کنید تا بتوانید از آنها در یک نمودار استفاده کنید. در واقع، بیشتر دادهها به صورت یک شیء نمایش داده شدهاند:
names(mushrooms)
خروجی:
[1] "class" "cap.shape"
[3] "cap.surface" "cap.color"
[5] "bruises" "odor"
[7] "gill.attachment" "gill.spacing"
[9] "gill.size" "gill.color"
[11] "stalk.shape" "stalk.root"
[13] "stalk.surface.above.ring" "stalk.surface.below.ring"
[15] "stalk.color.above.ring" "stalk.color.below.ring"
[17] "veil.type" "veil.color"
[19] "ring.number" "ring.type"
[21] "spore.print.color" "population"
[23] "habitat"
این دادهها را بگیرید و ستون 'class' را به یک دسته تبدیل کنید:
library(dplyr)
grouped=mushrooms %>%
group_by(class) %>%
summarise(count=n())
اکنون، اگر دادههای قارچ را چاپ کنید، میبینید که بر اساس دستههای سمی/خوراکی گروهبندی شدهاند:
View(grouped)
کلاس | تعداد |
---|---|
خوراکی | 4208 |
سمی | 3916 |
اگر ترتیب ارائهشده در این جدول را دنبال کنید تا برچسبهای دسته کلاس خود را ایجاد کنید، میتوانید یک نمودار دایرهای بسازید.
دایرهای!
pie(grouped$count,grouped$class, main="Edible?")
وویلا، یک نمودار دایرهای که نسبتهای این دادهها را بر اساس این دو دسته قارچ نشان میدهد. بسیار مهم است که ترتیب برچسبها را به درستی تنظیم کنید، به خصوص در اینجا، بنابراین حتماً ترتیب آرایه برچسبها را بررسی کنید!
دونات!
یک نمودار دایرهای کمی جذابتر، نمودار دونات است که یک نمودار دایرهای با یک سوراخ در وسط است. بیایید دادههای خود را با این روش بررسی کنیم.
به زیستگاههای مختلفی که قارچها در آن رشد میکنند، نگاهی بیندازید:
library(dplyr)
habitat=mushrooms %>%
group_by(habitat) %>%
summarise(count=n())
View(habitat)
خروجی:
زیستگاه | تعداد |
---|---|
چمنزار | 2148 |
برگها | 832 |
مراتع | 292 |
مسیرها | 1144 |
شهری | 368 |
زبالهها | 192 |
چوب | 3148 |
در اینجا، دادههای خود را بر اساس زیستگاه گروهبندی میکنید. 7 زیستگاه ذکر شده است، بنابراین از آنها به عنوان برچسبهای نمودار دونات خود استفاده کنید:
library(ggplot2)
library(webr)
PieDonut(habitat, aes(habitat, count=count))
این کد از دو کتابخانه - ggplot2 و webr - استفاده میکند. با استفاده از تابع PieDonut در کتابخانه webr، میتوانیم به راحتی یک نمودار دونات ایجاد کنیم!
نمودارهای دونات در R فقط با استفاده از کتابخانه ggplot2 نیز قابل ساخت هستند. میتوانید اطلاعات بیشتری در مورد آن اینجا بیاموزید و خودتان امتحان کنید.
اکنون که میدانید چگونه دادههای خود را گروهبندی کرده و سپس به صورت دایرهای یا دونات نمایش دهید، میتوانید انواع دیگر نمودارها را بررسی کنید. یک نمودار وافل را امتحان کنید، که فقط یک روش متفاوت برای بررسی کمیت است.
وافل!
یک نمودار نوع 'وافل' یک روش متفاوت برای تجسم کمیتها به صورت آرایهای دو بعدی از مربعها است. سعی کنید کمیتهای مختلف رنگهای کلاهک قارچها را در این مجموعه داده تجسم کنید. برای این کار، باید یک کتابخانه کمکی به نام waffle نصب کنید و از آن برای ایجاد تجسم خود استفاده کنید:
install.packages("waffle", repos = "https://cinc.rud.is")
یک بخش از دادههای خود را برای گروهبندی انتخاب کنید:
library(dplyr)
cap_color=mushrooms %>%
group_by(cap.color) %>%
summarise(count=n())
View(cap_color)
با ایجاد برچسبها و سپس گروهبندی دادههای خود، یک نمودار وافل ایجاد کنید:
library(waffle)
names(cap_color$count) = paste0(cap_color$cap.color)
waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green",
"pink", "purple", "red", "grey",
"yellow","white"))
با استفاده از نمودار وافل، میتوانید به وضوح نسبتهای رنگهای کلاهک قارچها در این مجموعه داده را مشاهده کنید. جالب است که قارچهای زیادی با کلاهک سبز وجود دارند!
در این درس، شما سه روش برای تجسم نسبتها یاد گرفتید. ابتدا باید دادههای خود را به دستهها گروهبندی کنید و سپس تصمیم بگیرید که بهترین روش برای نمایش دادهها چیست - دایرهای، دونات، یا وافل. همه اینها خوشمزه هستند و کاربر را با یک نمای فوری از مجموعه داده راضی میکنند.
🚀 چالش
سعی کنید این نمودارهای خوشمزه را در Charticulator بازسازی کنید.
آزمون پس از درس
مرور و مطالعه شخصی
گاهی اوقات مشخص نیست که چه زمانی باید از نمودار دایرهای، دونات، یا وافل استفاده کرد. در اینجا چند مقاله برای مطالعه در این زمینه آورده شده است:
https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart
https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce
https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm
تحقیقات بیشتری انجام دهید تا اطلاعات بیشتری در مورد این تصمیم دشوار پیدا کنید.
تکلیف
سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی خطاها یا نادرستیهایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفهای انسانی توصیه میشود. ما هیچ مسئولیتی در قبال سوءتفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.