二维条形图
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(…) 返回三维水平条形图的图形句柄。
三维条形图有两种显示形式:分组形式和行列形式。
分别按行组和行列绘制三维条形图
示例1:
Y = round(rand(5,3)*10); %随机函数产生5*3的数组,对产生的数据取整
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'
示例2:
Y = [1 2 3 4 5 6 7;1 2 3 4 3 2 1;7 6 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')