条形图
二维条形图
MATLAB中绘制条形图的基本函数为bar和barh,它们的调用格式为:
bar(Y) 如果Y为矢量,其每一个元素绘制一个条形;如果Y为矩阵,侧bar函数对每一行元素绘制的条形进行分组。
bar(x,Y) 按x中指定的位置绘制Y中每一元素的条形。
bar(…,width) 设置相邻条形的宽度并控制组内条形的分离,默认值为0.8,如果指定width=1,则组内的条形挨在一起。
bar(…,’style’) 指定绘制条形的类型,style有两个选项:
(1) stacked 矩阵Y中每一行绘制一个条形,条形的高度为行元素中元素的和,每一个条形都用多种颜色表示,颜色对应不同种类的元素并表示每行元素对总和的相对贡献。
(2) group 绘制n条形图组,每一个条形组中有m个垂直条形,其中n对应矩阵Y的行数,m对应列数,group为style的默认值。
bar(…,LineSpec) 用LineSpec指定的颜色绘制条形。
h=bar(…) 返回图形句柄。
barh(…) 绘制水平条形图。
h=barh(…) 返回水平条形图的图形句柄。
三维条形图
三维条形图的绘制函数为bar3和barah,其使用方法与bar和barh基本相同,其调用格式为:
bar3(Y) 绘制三维条形图,如果Y为矢量,其每一个元素绘制一个条形;如果Y为矩阵,侧bar函数对每一行元素绘制的条形进行分组。
bar3(x,Y) 按x中指定的位置绘制Y中每一元素的条形。
bar3(…,width) 设置相邻条形的宽度并控制组内条形的分离,默认值为0.8,如果指定width=1,则组内的条形挨在一起。
bar3(…,’style’) 指定绘制条形的类型,style有3个选项:
(1) stacked 矩阵Y中每一行绘制一个条形,条形的高度为行元素中元素的和,每一个条形都用多种颜色表示,颜色对应不同种类的元素并表示每行元素对总和的相对贡献。
(2) group 绘制n条形图组,每一个条形组中有m个垂直条形,其中n对应矩阵Y的行数,m对应列数,group为style的默认值。
(3) detached 在x方向用单独的条形块绘制Y中的每一行元素,detached为style的默认值;
bar3(…,LineSpec) 用LineSpec指定的颜色绘制条形。
h=bar3(…) 返回三维条形图的图形句柄。
barh(…) 绘制三维水平条形图。
h=barh(…) 返回三维水平条形图的图形句柄。
三维条形图有两种显示形式:分组形式和行列形式。
分别按行组和行列绘制三维条形图
Y = round(rand(5,3)10); %随机函数产生53的数组,对产生的数据取整 subplot(2,2,1) bar(Y,'group') title 'Group' subplot(2,2,2) bar(Y,'stack') %堆型二维垂直条形图 title 'Stack' subplot(2,2,3) barh(Y,'stack') %堆型二维水平条形图 title 'Stack' subplot(2,2,4) bar(Y,1.5) %设定条形的宽度为1.5 title 'Width = 1.5' 效果如图 Y = [1 2 3 4 5 6 7; 1 2 3 4 3 2 1; 76 5 4 3 2 1]; 复制代码 subplot(3,2,1) bar3(Y,'detached') title('Detached') subplot(3,2,2) bar3(Y,0.25,'detached') title('Width = 0.25') subplot(3,2,3) bar3(Y,'grouped') title('Grouped') subplot(3,2,4) bar3(Y,0.5,'grouped') title('Width = 0.5') subplot(3,2,5) bar3(Y,'stacked') title('Stacked') subplot(3,2,6) bar3h(Y,0.3,'stacked') title('Width = 0.3')