如何在MATLAB中绘制水平直方图?

时间:2011-10-14 22:53:12

标签: matlab plot histogram

我看了,找不到这个问题的答案,所以这里就是。

我有一些数据(1 X 1000矢量称为数据),我想绘制直方图信息。如果我使用histogram(data)命令,那么我得到一个足够好的直方图,其中x轴被均匀地划分为十个桶(数据的最大值和最小值之间的十个相等间隔的中点值)和y轴记录每个桶发生的次数。

我真正想要的是相同的情节,只是y轴代表铲斗间隔,x轴代表每个铲斗的数量......

通过这种方式,我可以将其粘贴到其他信息旁边的子图中,一切都会更容易理解(看起来非常酷)。有什么简单的方法可以实现这一目标?谢谢!

3 个答案:

答案 0 :(得分:10)

您可以使用barh功能实现您想要的效果。这是一个例子:

testData = randn(10000,1); %# test data
[counts,bins] = hist(testData); %# get counts and bin locations
barh(bins,counts)

enter image description here

翻转条形图

这是一个示例,说明如何沿垂直轴翻转图表。

h=barh(bins,counts); %# include previous two lines from above
set(get(h,'Parent'),'xdir','r')

enter image description here

答案 1 :(得分:3)

您还可以使用常规直方图函数 hist ,然后键入

更改视点
>> view(90, -90)

答案 2 :(得分:2)

自引入HISTOGRAM功能(R2014b)后,您可以通过将'orientation'设置为'horizo​​ntal'来制作水平直方图

示例:

histogram(data,'orientation','horizontal')