رسم هیستوگرام در متلب
هیستوگرام یکی از ابزارهای مهم در تحلیل دادههای آماری است که برای تحلیل و تجسم توزیع دادهها هست که در انجام پروژه متلب استفاده میشود. در متلب، دستور histogram به طور ویژه برای رسم هیستوگرامها طراحی شده است با استفاده از این دستور در متلب، میتوان به راحتی هیستوگرامهای مختلف را رسم و تحلیل کرد. هیستوگرام یک نمودار ستونی است که توزیع دادهها را نشان میدهد. هر ستون یا “بین” (bin) نمایانگر یک بازه از مقادیر دادهها و ارتفاع آن نمایانگر تعداد دادههای موجود در آن بازه است. هیستوگرامها به تحلیلگران کمک میکنند تا توزیع دادهها، الگوها و انحرافات را بهراحتی مشاهده کنند. دادههای مورد نیاز برای رسم هیستوگرام میتوانند شامل اعداد صحیح یا اعشاری باشند. دادهها باید به صورت آرایهای از اعداد آماده شوند و سپس با دستور هیستوگرام بکارگیری شوند.
هیستوگرامهای در دو نوع استاندارد و چند بُعدی در متلب کاربرد دارد. هیستوگرام استاندارد برای رسم توزیع یک بعدی دادهها و هیستوگرامهای چند بُعدی برای دادههای دو بعدی و بیشتر است. برای ترسیم هیستوگرامهای چند بعدی از دستوراتی همانندhist3 یاhistcounts2 استفاده میشود. برای تفسیر هیستوگرامها، باید به ارتفاع ستونها و توزیع دادهها توجه کنید. برای مثال، یک هیستوگرام با بیشترین ارتفاع در وسط به معنی توزیع نرمال دادهها است.
همچنین دستور histcounts برای شمارش تعداد دادهها در هر ستون ( بین) استفاده میشود و خروجی آن شامل تعداد دادهها در هر بین به صورت یک آرایه است. دستورhist نیز برای رسم هیستوگرام استفاده میشود، اما نسبت به histogram کمتر انعطافپذیر است و بهتدریج کاربرد کمتری دارد. با استفاده از پارامترهای FaceColor, EdgeColor, و FaceAlpha میتوان ظاهر هیستوگرام را سفارشی کرد. در سفارشی سازی،
میتوان خطوط مرزی و نشانگرها را به هیستوگرام اضافه کرد تا تحلیل دادهها آسانتر شود.
برای آشنایی با رسم سایر بخش های متلب مقالات زیر را مطالعه کنید:
نحو کلی دستور هیستوگرام بصورت زیر است:
histogram(data, ‘ParameterName’, ParameterValue, …)
که پارامترهای اصلی آن مطابق جدول زیر است:
توضیح | پارامتر |
دادههای ورودی برای رسم هیستوگرام | data |
موقعیت لبههای بین | BinEdges |
عرض هر بین | BinWidth |
رنگ پرکردن ستونها | FaceColor |
مثال 1: رسم هیستوگرام
clc; clear; close all;
ایجاد دادههای تصادفی%
data = randn(1000, 1);
رسم هیستوگرام با تنظیمات پیشفرض%
histogram(data);
title(‘Random Data in Histogram Plot’);
xlabel(‘Value’);
ylabel(‘Number’);
خروجی:
مثال 2: تنظیمات پیشرفته برای هیستوگرام
clc; clear; close all;
ایجاد دادههای تصادفی %
data = randn(1000, 1);
رسم هیستوگرام با تنظیمات خاص %
histogram(data, ‘BinWidth’, 0.5, ‘FaceColor’, ‘red’, ‘EdgeColor’, ‘black’);
title(‘Data in Histogram Plot’);
xlabel(‘Value’);
ylabel(‘Number’);
خروجی:
مثال 3: مقایسه چند هیستوگرام
clc; clear; close all;
ایجاد دادههای تصادفی %
data1 = randn(1000, 1);
data2 = randn(1000, 1) + 2;
رسم چند هیستوگرام در یک نمودار %
hold on;
histogram(data1, ‘FaceAlpha’, 0.5, ‘EdgeColor’, ‘black’);
histogram(data2, ‘FaceAlpha’, 0.5, ‘EdgeColor’, ‘black’);
hold off;
title(‘Compare two Data in Histogram Plot’);
xlabel(‘Value’);
ylabel(‘Number’);
legend(‘Data 1′,’Data 2’);
grid on
خروجی:
مثال4: هیستوگرام دو بعدی
clc; clear; close all;
ایجاد دادههای تصادفی دو بعدی %
data1 = randn(1000, 1);
data2 = randn(1000, 1);
رسم هیستوگرام دو بعدی %
hist3([data1, data2], ‘cdatamode’, ‘auto’, ‘facecolor’, ‘interp’);
title(‘2D Data in Histogram Plot’);
xlabel(‘Value’);
ylabel(‘Number’);
legend(‘Data 1′,’Data 2’);
grid on
خروجی:
مثال5- استفاده از histcounts
clc; clear; close all;
ایجاد دادههای تصادفی %
data = randn(1000, 1);
شمارش تعداد دادهها در هر بین %
[counts, edges] = histcounts(data, ‘binwidth’, 0.5);
رسم هیستوگرام با استفاده از bar %
bar(edges(1:end-1) + 0.25, counts, ‘histc’);
title(‘histcounts in histogram plot’);
xlabel(‘value’);
ylabel(‘number’);
خروجی:
مثال6- استفاده از hist
clc; clear; close all;
ایجاد دادههای تصادفی %
data = randn(1000, 1);
رسم هیستوگرام با استفاده از % hist
hist(data, 30);
title(‘hist in histogram plot’);
xlabel(‘value’);
ylabel(‘number’);
خروجی:
مثال 7: تنظیم رنگ و شفافیت
clc; clear; close all;
ایجاد دادههای تصادفی %
data = randn(1000, 1);
رسم هیستوگرام با رنگ و شفافیت سفارشی %
histogram(data, ‘facecolor’, ‘cyan’, ‘edgecolor’, ‘red’, ‘facealpha’, 0.6);
title(‘Color in histogram plot’);
xlabel(‘value’);
ylabel(‘number’);
خروجی:
مثال8: اضافه کردن خطوط مرزی
clc; clear; close all;
ایجاد دادههای تصادفی %
data = randn(1000, 1);
رسم هیستوگرام %
h = histogram(data, ‘binwidth’, 0.5);
اضافه کردن خطوط مرزی %
edges = h.BinEdges;
hold on;
for i = 1:length(edges) – 1
line([edges(i), edges(i)], [0, h.BinCounts(i)], ‘color’, ‘Black’, ‘linewidth’, 2);
end
hold off;
title(‘Edges in histogram plot’);
xlabel(‘value’);
ylabel(‘number’);
خروجی:


