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 不同类型的三维条形图
ICP备案:
公安联网备案: