在MATLAB中绘制条形统计图,主要使用的是bar函数及其相关的变种,如barh(用于绘制水平条形图)、bar3(用于绘制三维竖直条形图)和bar3h(用于绘制三维水平条形图)。以下是绘制条形统计图的基本步骤和示例:
一、基本步骤
准备数据:
确定要展示的数据。这些数据可以是向量或矩阵。
如果数据是矩阵,MATLAB会将矩阵的每一行或列视为一个数据组,并绘制相应的条形图。
调用bar函数:
使用bar(Y)绘制Y中每个元素的条形图,其中Y是向量或矩阵。
如果需要指定X轴的位置,可以使用bar(X,Y)。
美化图形(可选):
设置条形的颜色、宽度、样式等。
添加图例、标题、坐标轴标签等。
二、示例
示例1:绘制简单条形图
假设我们有一组数据,表示不同类别的人数:
% 数据
categories = {'男', '女', '其他'};
counts = [50, 30, 20];
% 绘制条形图
bar(counts);
% 设置X轴标签
set(gca, 'XTickLabel', categories);
% 添加标题和坐标轴标签
title('人数统计条形图');
xlabel('性别/类别');
ylabel('人数');
示例2:绘制堆叠条形图
如果我们想要展示不同类别中,子类别所占的比例,可以使用堆叠条形图:
% 数据
categories = {'男', '女'};
subcategories = {'学生', '教师', '其他'};
data = [
10, 20, 10; % 男性
5, 15, 10 % 女性
];
% 绘制堆叠条形图
bar(data, 'stacked');
% 设置X轴标签
set(gca, 'XTickLabel', categories);
% 添加图例
legend(subcategories);
% 添加标题和坐标轴标签
title('性别分类统计堆叠条形图');
xlabel('性别');
ylabel('人数');
示例3:绘制水平条形图
% 数据
categories = {'苹果', '香蕉', '橙子'};
counts = [20, 30, 15];
% 绘制水平条形图
barh(counts);
% 设置Y轴标签
set(gca, 'YTickLabel', categories);
% 旋转Y轴标签以便更好地阅读
set(gca, 'YTickLabelRotation', 45);
% 添加标题和坐标轴标签
title('水果销量水平条形图');
xlabel('销量');
ylabel('水果种类');
三、注意事项
当数据是矩阵时,MATLAB默认按行绘制条形图。如果希望按列绘制,可以使用bar(Y')(注意Y'是Y的转置)。
条形图的样式、颜色、宽度等都可以通过bar函数的附加参数来设置。
为了美化图形,可以添加图例、标题、坐标轴标签等,并调整其位置和样式。