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

Jim*_*mmy 8 matlab plot histogram

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

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

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

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

abc*_*bcd 11

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

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

在此输入图像描述

翻转条形图

这是一个示例,显示如何沿垂直轴翻转图表.

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

在此输入图像描述


小智 5

自从引入了 HISTOGRAM 函数(R2014b)后,您可以通过将“orientation”设置为“horizo​​ntal”来制作水平直方图

例子:

histogram(data,'orientation','horizontal')
Run Code Online (Sandbox Code Playgroud)