MATLAB画直方图并在每条柱标上数值,改变列宽

时间:2024-02-15 14:32:23
x = rand(100,1);
[n,y] = hist(x);
bar(y,n);
for i = 1:length(y)
text(y(i),n(i)+0.5,num2str(n(i)));
end

各函数说明:

[a,b]=hist(x,n) 其中x是一维向量,函数功能是将x中的最小和最大值之间的区间等分n份,横坐标是x值,纵坐标是该值的个数。返回的a是落在该区间内的个数,即每条柱的高度,b是该区间的中心线位置坐标,即每条柱的中心坐标。

bar(x,y) 其中x必须是严格递增的且一维向量x和一维向量y长度相同。以一维向量x的值为x坐标,对应的y为y坐标画直方图

bar(x,y,0.5) bar中的数字0.5控制柱状图的列宽,可以根据自己的情况具体设置