matlabhist函数_MATLAB在绘图时的⽤法—数据分布图(⼀)
(1) 条形图
⽤单位长度表⽰⼀定的数量,各数据变量按照数量的多少化成长短不同的条形,便于⽐较分析。⼆维条形图按图形⽅向可以分为垂直条形图和⽔平条形图,⽽每种图形⼜都存在两种模式:累计式和分组式。其中绘制垂直条形图的函数为bar(),绘制⽔平条形图的函数为barh.
调⽤格式:
bar(y): 为向量y中每⼀个元素绘制⼀个条形。
bar(x,y):在x指定的位置上绘制y,其中参数x必须时严格递增的向量。
bar(……,width):参数width⽤来设置条形的相对宽度和条形的间隔。其默认值为0.8,如果将width设置为1,则条形之间没有间距。
bar(……, 'stytle'):参数stytle⽤来设置条形的形状类型,可以使⽤的有group和stack。MATLAB中默认的数值为group 。stack为绘制累计直⽅图所⽤。
bar(……,color):设置条形的颜⾊
上述……可以⽤bar(x),bar(x,y)两个中任何⼀个。
>>subplot(211)
>> y = [3 4 2 6 9 4 3 9];
>> bar(y);
>> subplot(212);
>> x = [2:2:16];
>> bar(x,y)
>> y = round(rand(5,3)*10);
>> figure;
>> subplot(221)
>> bar(y,'grouped');
>> title('Group');
>> subplot(222);        %%上述rang(5,3)⽣成⼀个5⾏三列的数组,对应到表中为三组数值,分为5个层次。>> bar(y,'stacked');
>> title('stack')
>> subplot(223);
>> bar(y,'histc')
>> title('histc')
>> subplot(224)
>> bar(y,'hist')
>> title('hist')
>> barh(y,'stacked')  %barh()函数为⽔平条形图,调⽤格式和bar类似。
(2) 直⽅图
直⽅图时根据数据的分布情况,对数据进⾏分组,以组距为底边、以频数为⾼度连接起来的直⽅型矩形图。
(1)直⽅图是⽤矩阵的⾯积表⽰数据的多少,矩形的⾼度表⽰每⼀组的频数或频率,宽度则表⽰各组的组距,其中⾼度与宽度有实际意义,条形图是⽤条形的长度表⽰各数据的多少,其宽度则是固定的,可任意设置,⽆实际意义。
(2)直⽅图的各矩形由于分组数据的连续性,⼀般情况下是连续排列的,⽽条形图在条形没有设置过⼤的情况下是分开排列的。
MATLAB中使⽤hist()函数和rose()函数来绘制直⽅图。
1、hist(x): 基于向量x中的元素创建直⽅图条形图。x中的元素有序划分⼊x轴上介于x的最⼩值和最⼤值间的 10 个等间距 bin 中。hist将bin 显⽰为矩形,这样每个矩形的⾼度就表⽰ bin 中的元素数量。
hist(x,nbins):将x有序划分⼊标量nbins所指定数量的 bin 中。
hist(x,xbins):使⽤由向量xbins确定的间隔或类别将x有序划分⼊ bin 中。
如果 xbins 是⼀个包含等间距值的向量,则 hist 将使⽤这些值作为直⽅图中⼼。
如果 xbins 是⼀个包含⾮等间距值的向量,则 hist 将使⽤连续值之间的中点作为 bin 边界。
>> x =[1 2 3 4 5 2 1 3 2 4 2 4 2 4 5 2 ];
>> y = [1 3 4 2 4 ;3 2 1 3 2;4 4 2 1 2];
用subplot函数>> subplot(221)
>> hist(x)
>> subplot(222)
>> hist(y)
>> z = randn(1000,1);
>> nbins = 50;
>> subplot(223)
>> hist(z,nbins);
>> xbins = -4:4;
>> subplot(224)
>> hist(z,xbins);
上述代码的绘图结果如图所⽰
2、rose():
调⽤格式:
rose(theta):创建⼀个⾓度直⽅图,这是⼀个极坐标图,显⽰根据其数值范围分组的值的分布,以及theta在 20 个或更少⾓度 bin 中的分布。向量theta以弧度表⽰,⽤于确定从原点开始的每个 bin 的⾓度。每个 bin 的长度反映theta中位于组内的元素数,范围从 0 到任⼀
bin 中放置的元素的最⼤数量。
rose(theta,x):使⽤向量x指定 bin 的数量和位置。length(x)是 bin 的数量,x的值指定每个 bin 的圆⼼⾓。例如,如果x是⼀个五元素向量,则rose将theta中的元素分布在五个以指定的 x 值为中⼼的 bin 中。
rose(theta,nbins):在[0,2*pi] 范围内绘制 nbins 个等间距的 bin。默认字段名称为20。
>> x =[pi/2 pi/2 pi pi pi 2*pi];
>> rose(x);
>> theta = [pi/3 pi/3 pi/2 2*pi/3 2*pi/3 2*pi/3 pi pi 3*pi/2 2*pi/2];
>> x1 = [0 pi/3 2*pi/3 pi 4*pi/3];
>> x2 = [0 pi/2 pi 4*pi/3 2*pi];
>> x3 = [1 2 3 4 5 ];
>> subplot(221)
>> rose(theta,x1)
>> subplot(222)
>> rose(theta,x2)
>> subplot(223)
>> rose(theta,x3)
>> subplot(224)
>> rose(theta)
绘图⼼得:根据绘制的图形观察得,当x向量规律变化的时候,x中向量为三⾓形底边中点。对于使⽤historgam()函数绘制直⽅图的⽅法后续更新中继续学习。
本⽂下接MATLAB数据分布图(⼆):
灵魂歌⼿⽔云天:MATLAB在绘图时的⽤法—数据分布图(⼆)z huanlan.zhihu
本⽂参考:
清华⼤学出版社《MATLAB基础与可视化编程》
MATLAB MathWorks官⽹
-
---------------------------------------------------------------------------------------------本⽂部分数据、代码和⽅法介绍来源于⽹络。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。