### Matlab绘制柱状图的方法
在Matlab中,`bar()` 函数是最常用的用于绘制柱状图的工具之一。它能够创建二维柱状图、三维柱状图以及水平柱状图等多种形式的图表。
#### 基本语法
以下是 `bar()` 的基本调用方法:
```matlab
bar(y)
```
其中 `y` 是一个向量或者矩阵。如果输入是一个向量,则会生成一组垂直条形;如果是矩阵,则每一列代表一组条形[^1]。
#### 示例代码:简单柱状图
下面是一段简单的示例代码,演示如何使用 `bar()` 创建基础柱状图。
```matlab
data = [5, 10, 15, 20];
labels = categorical({'A', 'B', 'C', 'D'});
bar(labels, data);
xlabel('类别');
ylabel('数量');
title('简单柱状图');
set(gca,'FontSize',12); % 设置字体大小
```
#### 多维数据处理
当需要表示多个维度的数据时,可以传递矩阵给 `bar()` 函数。例如:
```matlab
groupData = [10, 20, 30; 40, 50, 60];
bar(groupData);
legend('Group A', 'Group B');
xlabel('分类');
ylabel('值');
title('分组柱状图');
```
这里展示了两组不同的数据在同一张图表上的对比情况[^3]。
#### 自定义样式
除了默认外观外,还可以通过参数调整颜色、宽度等属性。比如设置填充色为蓝色并去除边框线如下所示:
```matlab
figure;
data=[0.3,0.5,0.6,0.8,0.2,0.1,0.8,0.9,0.3,0.4];
Xlabel=categorical({'0','1','2','3','4','5','6','7','8','9'});
bar(Xlabel,data,0.7,'FaceColor',[0.12 0.57 1],'EdgeColor','none');
% 配置坐标轴文字风格
set(gca,'FontSize',20,'Fontname','Times New Roman');
ylabel('分布','Fontname','宋体','FontSize',20,'FontWeight','bold');
xlabel('类别','Fontname','宋体','FontSize',20,'FontWeight','bold');
% 数据标注功能实现
for i = 1:length(data)
text(Xlabel(i), data(i)+0.01,num2str(data(i)),'HorizontalAlignment','center',...
'VerticalAlignment','bottom','FontSize',16,'Fontname','Times New Roman');
end
```
此脚本不仅设置了特定的颜色方案还增加了顶部数值标记以便更直观理解数据含义[^4]。
#### 更高级别的定制化选项
对于更加复杂的场景可能涉及到堆叠效果或是横向布局等问题也可以轻松解决。例如制作堆积型柱状图可采用 `'stacked'` 参数完成操作:
```matlab
clc; clear all;
X = [70,75,80,85,90];
colors = [200,65,68;200,132,174;249,199,179;100,190,190;10,250,139]/255;
hold on
for idx = 1 : length(X)
b = bar(idx,X(idx),0.9,'stacked');
set(b(1),'facecolor',colors(idx,:));
end
box on ;
xticks([1 2 3 4 5]);
xticklabels({'Item-A','Item-B','Item-C','Item-D','Item-E'});
fontsize=10;
fontfamily='Times New Roman';
set(gca,'FontSize',fontsize,'FontName',fontfamily);
ylim([60 100]);
ylabel('百分比 (%)','FontName','SimSun','FontSize',14);
xlabel('项目名称','FontName','SimSun','FontSize',14);
legend({'Item-A','Item-B','Item-C','Item-D','Item-E'},'Location','NorthEastOutside');
```
上述程序片段实现了带有个性化色彩配置及标签说明等功能强大的堆叠式直方统计图形输出。