نمودار جعبهای (Boxplot) یک ابزار آماری قدرتمند است که به محققان و تحلیلگران اجازه میدهد تا اطلاعات مهمی در مورد توزیع دادهها و ویژگیهای آماری آن ها به دست آورند. این نمودار به شکلی مفصل و دقیق، ترکیبی از ویژگیهای مختلف مجموعههای داده را به تصویر میکشد و امکان مقایسهی میانگینها، انحرافهای معیار، چارکها و دادههای پرت را فراهم میکند. برخی اهداف مهم و کاربردهای نمودار جعبهای عبارتند از:
نمایش توزیع دادهها: نمودار جعبهای به توزیع دادهها در یک مجموعه اجازه میدهد. میتوان به سرعت مشاهده کرد که چگونه دادهها در اطراف میانه گسترش دارند و چه میزان پراکنش در آن ها وجود دارد.
شناسایی دادههای پرت: با رسم این نمودار، دادههای پرت و افراز و نشیبها در مجموعه داده به وضوح مشخص میشوند. این موارد میتوانند به محققان کمک کنند تا دادههای غیرعادی و ناهنجار را شناسایی کرده و از تحلیلهای خود در برابر آن ها محافظت کنند.
مقایسه گروهها: با رسم نمودار جعبهای برای چندین گروه مختلف، میتوان میانگینها، میانهها، انحرافهای معیار و دیگر ویژگیهای آماری در گروهها را مقایسه کرد. این به تحقیقات مقایسهای و تشخیص تفاوتهای آماری بین گروهها کمک میکند.
شناسایی توزیعهای ناهمگن: نمودار جعبهای میتواند توزیعهای ناهمگن در دادهها را نشان دهد. اگر جعبهها در نمودار به شکل نامنظمی از نظر اندازه باشند، این ممکن است به توزیعهای ناهمگن اشاره داشته باشد.
شناسایی انحرافهای معیار: انحرافهای معیار در دادهها میتوانند به سرعت با توجه به اندازههای جعبهها و طول شانهها در نمودار تشخیص داده شوند.
به علاوه، نمودار جعبهای در مقالات علمی، گزارشها و تحقیقات مختلف در زمینههای مختلف از جمله پزشکی، علوم اجتماعی، اقتصاد و آمار کاربردهای فراوانی دارد. این نمودار به تحلیلهای دقیقتر، ارائه دادههای آماری قابل فهمتر و انتقال اطلاعات به مخاطبان بهتر کمک میکند.
در پایتون، میتوانیم از کتابخانههای مختلفی مانند matplotlib یا seaborn برای رسم نمودار جعبهای استفاده کنیم. در ادامه با مثالهایی آشنا می شوید که در آن توابع boxplot از کتابخانه matplotlib برای رسم نمودارهای جعبهای استفاده شده است. هر مثال نمودار جعبهای را با ویژگیهای مختلف نمایش میدهد، از جمله تعداد گروهها، انحرافهای معیار، پراکنش و دیگر پارامترها. با تغییر پارامترهای توابع boxplot میتوانید نمودارهای مختلفی ایجاد کنید تا نیازهای خود را برآورده کنید.
در مثال آورده شده در شکل1، ابتدا دو کتابخانه matplotlib.pyplot و numpy را وارد میکنیم. سپس یک آرایه به نام data از اعداد تصادفی با توزیع نرمال (استاندارد) ایجاد میشود. در اینجا، data یک آرایه ۱۰۰ عنصری از اعداد تصادفی با توزیع نرمال است. سپس با استفاده از تابع boxplot از کتابخانه matplotlib.pyplot، نمودار جعبهای از دادههای data رسم میشود. در نهایت، با استفاده از تابع title، عنوان “Simple Boxplot” به نمودار اضافه میشود و با فراخوانی تابع ()show، نمودار به صفحه نمایش منتقل و نمایش داده میشود.
در مثال شکل2، ابتدا دادههای تصادفی برای سه گروه از اعداد تولید میشود. گروه اول دارای توزیع نرمال استاندارد (میانگین ۰ و انحراف معیار ۱)، گروه دوم دارای توزیع نرمال با میانگین ۲ و انحراف معیار ۱ و گروه سوم دارای توزیع نرمال با میانگین -۲ و انحراف معیار ۱ است. سپس با استفاده از تابع boxplot از کتابخانه matplotlib.pyplot، نمودار جعبهای با توجه به دادههای هر گروه و با برچسبهای مشخصکننده گروهها رسم میشود. در انتها، با تابع title، عنوان “Boxplot with Multiple Groups” به نمودار اضافه میشود و با فراخوانی تابع ()show، نمودار به صفحه نمایش منتقل و نمایش داده میشود.
در مثال ذکر شده در شکل3، ابتدا با استفاده از یک حلقه for، دادههای تصادفی برای سه مجموعه با انحرافهای معیار مختلف ایجاد میشود. هر آرایه دادهها دارای توزیع نرمال با انحراف معیار مختلف است: ابتدا از توزیع نرمال با انحراف معیار 1، سپس با انحراف معیار 2 و در نهایت با انحراف معیار 3.
برای هر مقدار در محدوده 1 تا 3 (با استفاده از (range(1, 4)، یک آرایه 100 عنصری از اعداد تصادفی با توزیع نرمال ایجاد میشود. این آرایهها در لیست data قرار میگیرند.
np.random.normal(0, std, 100): این تابع با استفاده از کتابخانه numpy اعداد تصادفی با توزیع نرمال ایجاد میکند. سه پارامتر وارد میشود: میانگین (در اینجا صفر)، انحراف معیار (std که مقدار آن در بازه 1 تا 3 تغییر میکند) و تعداد نمونهها (100).
پس از اجرای این دستور، لیست data شامل سه آرایه تصادفی با توزیع نرمال با انحراف معیارهای مختلف خواهد بود. به عبارت دیگر:
[0]data: یک آرایه با اعداد تصادفی با توزیع نرمال و انحراف معیار ۱
[1]data: یک آرایه با اعداد تصادفی با توزیع نرمال و انحراف معیار ۲
[2]data: یک آرایه با اعداد تصادفی با توزیع نرمال و انحراف معیار ۳
سپس با استفاده از تابع boxplot از کتابخانه matplotlib.pyplot، نمودار جعبهای از دادههای ایجاد شده رسم میشود. با تنظیم vert به False، نمودار افقی رسم میشود، به این معنی که جعبهها در افقی قرار دارند. همچنین با تنظیم patch_artist به True، رنگها درون جعبهها نشان داده میشوند.
در انتها، با استفاده از تابع title، عنوان “Boxplot with Different Features” به نمودار اضافه میشود و با استفاده از تابع ()show، نمودار مورد نظر به صفحه نمایش منتقل و نمایش داده میشود.
در مثال شکل4، ابتدا با استفاده از تابع (5, 100)np.random.randn اعداد تصادفی به شکل یک ماتریس 100 در 5 ایجاد میشود. این ماتریس دادههای تصادفی با توزیع نرمال استاندارد (میانگین 0 و انحراف معیار 1) را نمایش میدهد.
سپس با استفاده از تابع boxplot از کتابخانه matplotlib.pyplot، نمودار جعبهای از دادههای تصادفی در قالب ماتریس رسم میشود. با تنظیم notch به True، خط خطی در داخل هر جعبه رسم میشود که به نوعی نمایانگر اطلاعاتی از تخمین میانه است. با تنظیم vert به False، نمودار افقی رسم میشود، به این معنی که جعبهها در افقی قرار دارند. همچنین با تخصیص برچسبهای labels به ویژگیهای گروهها (در اینجا A تا E)، هر جعبه با یک برچسب نشان داده میشود.
در انتها، با استفاده از تابع title، عنوان “Boxplot with Standard Deviations and Spread” به نمودار اضافه میشود و به کمک تابع ()show، امکان نمایش نمودار فراهم میشود.
در مثال5 با یکی دیگر از کاربردهای نمودار جعبه ای آشنا می شوید. ابتدا با استفاده از تابع (200, 1, 0)np.random.normal، یک آرایه 200 عنصری از اعداد تصادفی با توزیع نرمال (میانگین 0 و انحراف معیار 1) ایجاد میشود. سپس با دسترسی به دادههای این آرایه، دو دادهی پرت به دادهها اضافه میشود: یک داده بزرگتر از میانگین (در موقعیت 25) و یک داده کوچکتر از میانگین (در موقعیت 175).
در مرحله بعد، با استفاده از تابع boxplot از کتابخانه matplotlib.pyplot، نمودار جعبهای از دادهها رسم میشود. تنظیم vert به False نمودار را افقی نمایش میدهد. با تنظیم notch به True، خط خطی در داخل هر جعبه نشان میدهد که اطلاعاتی درباره تخمین میانه دادهها ارائه میکند. تنظیم widths به 5/0 عرض جعبهها را کمتر میکند. همچنین با استفاده از پارامتر medianprops و تنظیم رنگ قرمز، خط میانهای درون جعبهها را قرمز میکند.
در انتها، با استفاده از تابع title، عنوان “Boxplot with Outliers and Custom Width” به نمودار اضافه میشود و با استفاده از تابع ()show همانطور که در مثال های قبلی نیز ذکر شد، نمودار به صفحه نمایش منتقل و نشان داده میشود.
دیدگاه ها