در این مقاله، نحوه رسم نمودار جعبه ای در R را به شما می آموزیم.
- مدرس: افشین متولی
- سایت: آر استودیو
- سطح آموزش: مبتدی
برای رسم نمودار جعبه ای باید از دستور ()boxplot استفاده کنید. این تابع برداری عددی از اعداد را گرفته و برای هر بردار، یک نمودار جعبه ای ترسیم می کند.
ما برای این کار از داده های پیش فرض موجود در R به نام airquality استفاده می کنیم که نشان دهنده کیفیت هوای روزانه در شهر نیویورک است.
برای مشاهده جزئیات مربوط به این داده ها دستور زیر را اجرا کرده ایم:
1 2 3 4 5 6 7 8 |
> str(airquality) 'data.frame': 153 obs. of 6 variables: $ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ... $ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ... $ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ... $ Temp : int 67 72 74 62 56 66 65 59 61 69 ... $ Month : int 5 5 5 5 5 5 5 5 5 5 ... $ Day : int 1 2 3 4 5 6 7 8 9 10 ... |
حال به مثال زیر توجه کنید.
مثال 1:
فرض کنید می خواهیم برای متغیر Ozone یک نمودار جعبه ای رسم کنیم:
1 |
boxplot(airquality$Ozone) |
خروجی:
در این نمودار شاهد پراکندگی بیشتر داده ها در بالای میانه هستیم. همچنین دو داده پرت به وضوح دیده می شوند. حال برای زیباتر کردن این نمودار می توانیم پارامترهای بیشتری را به آن اضافه کنیم:
مثال 2:
فرض کنید می خواهیم همان نمودار را به علاوه عنوان اصلی، عنوان محورها و تغییر رنگ رسم کنیم:
1 2 3 4 5 6 7 8 9 |
boxplot(airquality$Ozone, main = "Mean ozone in parts per billion at Roosevelt Island", xlab = "Parts Per Billion", ylab = "Ozone", col = "orange", border = "brown", horizontal = TRUE, notch = TRUE ) |
در این دستور:
-
main: توضیحات اصلی نمودار است که در بالای نمودار قرار می گیرد.
-
xlab: برچسب مربوط به محور x است.
-
ylab: برچسب مربوط به محور y است.
-
col: رنگ مربوط به جعبه است.
-
border: رنگ خط حاشیه جعبه است.
-
horizental: رسم نمودار جعبه ای به صورت افقی است.
-
notch: قرار دادن بریدگی بر روی جعبه است.
خروجی:
رسم چند نمودار جعبه ای با هم:
مثال 3:
فرض کنید می خواهیم نمودار جعبه ای را برای دو متغیر Ozone و Temp از همان داده ها رسم کنیم. در این مثال ما توزیع نرمال را با همان میانگین و انحراف معیار تولید کرده و در کنار هر یک از آن ها قرار داده ایم تا بتوانیم با آن ها مقایسه کنیم:
1 2 3 4 5 |
ozone <- airquality$Ozone temp <- airquality$Temp # gererate normal distribution with same mean and sd ozone_norm <- rnorm(200,mean=mean(ozone, na.rm=TRUE), sd=sd(ozone, na.rm=TRUE)) temp_norm <- rnorm(200,mean=mean(temp, na.rm=TRUE), sd=sd(temp, na.rm=TRUE)) |
حال ما با استفاده از دستورات زیر، چهار نمودار جعبه ای را رسم می کنیم. توجه کنید که از دستورات at و names به ترتیب برای نشان دادن مکان نمودار و برچسب نمودار استفاده کرده ایم:
1 2 3 4 5 6 7 8 9 10 |
boxplot(ozone, ozone_norm, temp, temp_norm, main = "Multiple boxplots for comparision", at = c(1,2,4,5), names = c("ozone", "normal", "temp", "normal"), las = 2, col = c("orange","red"), border = "brown", horizontal = TRUE, notch = TRUE ) |
خروجی:
رسم نمودار جعبه ای در R برای فرمول ها:
گاهی قصد داریم نمودار جعبه ای مربوط به یک فرمول مانند y˜x را رسم کنیم به طوری که y یک بردار عددی و وابسته به x است.
مثال 4:
در مجموعه داده airquality، متغیر دما (Temp) یک متغیر عددی است. حال ماه (Month) می تواند همان متغیر مستقل ما باشد، بنابراین می توانیم نمودار جعبه ای هر ماه را به صورت جداگانه برای Temp به دست آوریم. البته در این داده ها، ماه ها به صورت عدد هستند، مثلاً ژانویه را با 1، فوریه را با 2 و … نمایش داده اند.
1 2 3 4 5 6 7 8 |
boxplot(Temp~Month, data=airquality, main="Different boxplots for each month", xlab="Month Number", ylab="Degree Fahrenheit", col="orange", border="brown" ) |
در این نمودار به وضوح مشخص است که ماه 7 (جولای) نسبتاً گرم تر از بقیه ماه ها می باشد زیرا دمای آن بالاتر است. برای مشاهده مثال های بیشتر در زمینه رسم نمودار به سایت Rseek مراجعه کنید.
لطفاً دیدگاه خود را برای ما ارسال کنید.
حتماً بخوانید: