MATLAB画直方图并在每条柱标上数值,改变列宽
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控制柱状图的列宽,可以根据自己的情况具体设置