绘制数据点的直方图

时间:2013-11-11 05:35:14

标签: matlab statistics

请考虑以下示例代码:

figure
data = [0,2,9,2,5,8,7,3,1,9,4,3,5,8,10,0,1,2,9,5,10];
hist(data)

为什么这个直方图绘制数据点0& 1表示频率为4(在Y轴上),实际上为0& 1在数据中出现两次?

3 个答案:

答案 0 :(得分:1)

您有21个数据点。默认情况下,hist使用10个分箱。如果您按如下方式执行hist

figure
data = [0,2,9,2,5,8,7,3,1,9,4,3,5,8,10,0,1,2,9,5,10];
hist(data, 21)

你会得到正确答案:

enter image description here

答案 1 :(得分:1)

如果你做了

[hy hx] = hist(data)

您会看到hx变量中使用的分档。如果您没有指定垃圾箱,它们会为您指定 - 默认情况下不是很聪明。

如果你有整数数据,并且你想要整数二进制数,

hist(data, min(data):max(data))

是获得它的一个非常好的方法。如果你需要大于1的垃圾箱,比如

n = 5;
hist(data, (floor(min(data)/n):ceil(max(data)/n))*n)

可以很好地工作,并给你一个bin大小为n(在这种情况下为5)

答案 2 :(得分:0)

N = HIST(Y)将Y的元素分成10个等间距的容器,并返回每个容器中的元素数。如果Y是矩阵,则HIST按列运行。这里对于0和1,制作单个箱,因此直方图绘制数据点0和0。 1表示频率为4(在Y轴上),实际上为0& 1在数据中出现两次