MATLAB bar()和bar3()函数:创建条形图(附带实例)
在 MATLAB 中,利用函数 bar() 可以创建条形图,其调用格式如下:
【实例】绘制不同类型的条形图。在编辑器中编写以下程序并运行。

图 1 不同类型的条形图
【实例】绘制不同类型的三维条形图。在编辑器中编写以下程序并运行。

图 2 不同类型的三维条形图
bar(y) % 创建条形图,y 中的每个元素对应一个条形 % 若 y 为 m×n 矩阵,则 bar 创建 m 个条形组,每组包含 n 个条形 bar(x,y) % 在 x 指定的位置绘制条形 bar(__,width) % 设置条形的相对宽度以控制组中各条形的间隔 bar(__,style) % 指定条形组的样式 bar(__,color) % 设置所有条形的颜色在 MATLAB 中,利用函数 barh() 可以绘制水平条形图,该函数的调用格式与函数 bar() 的相同,这里不再赘述。
【实例】绘制不同类型的条形图。在编辑器中编写以下程序并运行。
subplot(2,2,1) x = 1900:20:2000; y = [75 91 105 123.5 131 150]; bar(x,y) subplot(2,2,2) y = [2 2 3; 2 5 6; 2 8 9; 2 11 12]; bar(y) % 显示 4 个条形组,每组包含 3 个条形 subplot(2,2,3) bar(y,'stacked') % 显示堆叠条形图,每个条形的高度是行中各元素之和 subplot(2,2,4) x = [1 2 3 4]; vals = [2 36 5; 11 23 26 12]; % 定义包含两个数据集中值的矩阵 b = bar(x,vals); % 在第一个条形序列的末端显示值 xtips1 = b(1).XEndPoints; % 获取条形末端的 x 坐标 ytips1 = b(1).YEndPoints; % 获取条形末端的 y 坐标 labels1 = string(b(1).YData); text(xtips1,ytips1,labels1,'HorizontalAlignment','center',... 'VerticalAlignment','bottom') % 在第二个条形序列的末端显示值 xtips2 = b(2).XEndPoints; ytips2 = b(2).YEndPoints; labels2 = string(b(2).YData); text(xtips2,ytips2,labels2,'HorizontalAlignment','center',... 'VerticalAlignment','bottom')运行程序后,输出如下图所示图形:

图 1 不同类型的条形图
MATLAB bar3()三维条形图
在 MATLAB 中,利用函数 bar3() 可以绘制垂直三维条形图(柱状图),其调用格式如下:bar3(Z) % 绘制三维条形图;[n,m] = size(Z) % Z 中的各元素为 z 坐标,x = 1:n,y = 1:m bar3(Y,Z) % 在 Y 指定的位置绘制 Z 中各元素的条形图 bar3(__,width) % 设置条形宽度并控制组中各条形的间隔 % 默认 0.8,条形之间有细小间隔;若为 1,组内条形紧挨在一起 bar3(__,style) % 指定条形的样式 % style 可为 'detached'(分离式,默认) % 'grouped'(分组式) % 'stacked'(堆叠式) bar3(__,color) % 使用 color 指定的颜色('r'、'g'、'b' 等)显示所有条形在 MATLAB 中,利用函数 bar3h() 可以绘制水平放置的三维条形图,其调用格式与函数 bar3() 的相同。
【实例】绘制不同类型的三维条形图。在编辑器中编写以下程序并运行。
clear, clf Z = rand(4); subplot(1,4,1) h1 = bar3(Z,'detached'); % set(h1,'FaceColor','w') % 根据需要对图形句柄进行参数设置 title('分离式条形图') subplot(1,4,2) h2 = bar3(Z,'grouped'); title('分组式条形图') subplot(1,4,3) h3 = bar3(Z,'stacked'); title('叠加式条形图') subplot(1,4,4) h4 = bar3h(Z); % 水平三维条形图 title('无参式条形图')运行程序后,输出图形如下图所示:

图 2 不同类型的三维条形图