matlab如何画直方图
用matlab画这组数的直方图,要求横坐标数据间隔0.2,纵坐标为所占百分比 展开
推荐于2017-09-03
首先输入两个变量,x=randn(500,1);y=randn(500,3);该语句定义x,y为正态分布随机数。记住该语句将非常有用。
接着先绘制一个最简单的直方图,使用命令:subplot(3,1,1); hist(x);关于subplot的用法在上一篇文章中有介绍,hist(x)就是用直方图表示x,效果如图所示:
接着使用 subplot(3,1,2);hist(x,100);其中参数100的意思是将数据分为100个组并进行绘制,如图所示;
对比一下这句就明白参数的使用方法:subplot(3,1,3);hist(x,25);这里将数据绘制成25个直方,如图所示,下面第三个图就是;
hist还可以这样用 a=[1 2 3];hist(x,a);这时候a是一个向量,绘制出来的图形如图所示,下面第二幅图就是,显然a变成了x轴上的刻度。
还可以返回每一个直方的频数,使用方法是b=hist(x,100);你会得到一个数组b,有100个元素,每个元素都是100个直方之一的频数。
y=[21.6782 20.3719 21.3877 21.3175 19.5967 19.7427 18.9357 20.6425 19.8752 20.4222 19.6649 18.2568 20.9944 20.0948 20.3486 19.5566 21.2797 19.1838 19.5389 20.1730 20.6692 19.3972 20.3513 18.9068 19.4997 20.3112 19.9173 20.8892 20.1107 19.9163 20.5785 20.3619 20.0586 20.3064 19.0468 18.9375 20.8671 21.0271 19.3988 19.0883 21.1236 20.1823 18.9051 20.0728 18.7595 19.8528 20.3500 18.5315 20.1973 20.0407]; % 统计数据
x = min(y):0.2:ceil(max(y)); % 确定分组
hist(y,x); % 作图
调用格式:bar(x,y,选项) ,其中,x,y是维数相同的矩阵或者向量,配对的x,y按对应的列元素为横纵坐标绘制,选项是一些绘图控制选项,可选;
例如,绘制y=2exp(-0.5x)的条形图
bar3(x,y)或者bar3(y),前者在x指定的位置上绘制y中元素的条形图,后者y的每一个元素对应于一个条形。