本文介绍频数直方图的作图方法与技巧。包括在柱子的顶端添加标记字符的方法、绘制正态拟合曲线的方法、同时绘制多个直方图的方法、绘制立体直方图的方法、以及绘制边缘直方图的方法。
【例1】生成1000个服从正态分布(均值为10,标准差为2)的随机数,绘制频数直方图,并在每个柱子的顶端标记频数。
>> X = normrnd(10,2,1000,1);>> [N,edges] = histcounts(X,10);>> midpoint = (edges(1:end-1)+edges(2:end))/2;>> histogram(X,edges)>> text(midpoint,N+5,num2str(N'),'HorizontalAlignment','Center')>> xlabel('X');>> ylabel('频数')
【例2】绘制带有正态拟合曲线的直方图。
>> X = normrnd(10,2,1000,1);>> histfit(X)
【例3】根据多个样本数据绘制多个直方图。
>> x = randn(2000,1);>> y = 1.5 + randn(5000,1);>> h1 = histogram(x);>> hold on>> h2 = histogram(y);
【例4】根据二维样本数据绘制立体直方图。
>> x = randn(10000,1);>> y = randn(10000,1);>> h = histogram2(x,y)>> xlabel('x')>> ylabel('y')
【例5】根据二维样本数据绘制带有边缘直方图效果的散点图。
>> load fisheriris.mat;>> x = meas(:,1);>> y = meas(:,2);>> scatterhist(x,y)