数据可视化4:MATLAB绘制横向堆叠图

        横向堆叠图(也称为水平堆叠条形图)是一种数据可视化工具,通过水平条形图的形式展示多个分类变量的构成比例或累积效果。

样图展示

样例

横向堆叠图绘制方法

        在MATLAB中,横向堆叠图可以通过调整常规堆叠图的坐标轴方向实现,主要使用barh函数结合数据堆叠选项完成。

数据准备

   X表示有7个样本,A表示7个样本每个堆叠块的数值大小。共有4个堆叠块。

clc;clear;close all
%% 导入数据
X = [1,2,3,4,5,6,7];
A = [0.12,0.11,0.20,0.15,0.22,0.33,0.50;
    0.13,0.14,0.15,0.19,0.20,0.25,0.40;
    0.12,0.13,0.13,0.15,0.20,0.30,0.38;
    0.15,0.20,0.21,0.23,0.28,0.28,0.42];

开始绘图

barh 是 Matplotlib 中用于绘制水平条形图的函数,适用于展示类别数据的比较或排序。

自定义颜色

调整坐标轴与样式

grid on
% 坐标区基本属性调整
set(gca, 'Box', 'off', ...                                         % 边框
    'LineWidth', 2, ...                                       % 线宽
    'XGrid', 'on', 'YGrid', 'on', ...                        % 网格
    'TickDir', 'out', 'TickLength', [.01 .01], ...            % 刻度
    'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度
    'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])              % 坐标轴颜色
% 坐标轴刻度调整
set(gca, 'XTick',0:0.2:3,...                                       % 刻度位置、间隔、范围
    'YTick',1:7,...
    'Xlim' ,[0 1.8],...
    'Ylim' , [0.3 7.7], ...
    'Yticklabel',{'M1' 'M2' 'M3' 'M4' 'M5'  'M6' 'M7'},...    % Y坐标轴刻度标签
    'Xticklabel',{0:0.2:3})                                   % X坐标轴刻度标签
legend('A', 'B', 'C', 'D')

完整代码

clc;clear;close all
%% 导入数据
X = [1,2,3,4,5,6,7];
A = [0.12,0.11,0.20,0.15,0.22,0.33,0.50;
    0.13,0.14,0.15,0.19,0.20,0.25,0.40;
    0.12,0.13,0.13,0.15,0.20,0.30,0.38;
    0.15,0.20,0.21,0.23,0.28,0.28,0.42];
%% 开始绘图
figure();
h = barh(X,A',0.7,'stacked','EdgeColor','k');
xlabel('数值','FontSize',20,'FontWeight','bold','FontName','宋体');
ylabel('样本','FontSize',20,'FontWeight','bold','FontName','宋体');
%% 配色
h(1).FaceColor = [251, 180, 174]/255;
h(2).FaceColor = [179, 205, 227]/255;
h(3).FaceColor = [204, 235, 197]/255;
h(4).FaceColor = [222, 203, 228]/255;
grid on
% 坐标区基本属性调整
set(gca, 'Box', 'off', ...                                         % 边框
    'LineWidth', 2, ...                                       % 线宽
    'XGrid', 'on', 'YGrid', 'on', ...                        % 网格
    'TickDir', 'out', 'TickLength', [.01 .01], ...            % 刻度
    'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度
    'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])              % 坐标轴颜色
% 坐标轴刻度调整
set(gca, 'XTick',0:0.2:3,...                                       % 刻度位置、间隔、范围
    'YTick',1:7,...
    'Xlim' ,[0 1.8],...
    'Ylim' , [0.3 7.7], ...
    'Yticklabel',{'M1' 'M2' 'M3' 'M4' 'M5'  'M6' 'M7'},...    % Y坐标轴刻度标签
    'Xticklabel',{0:0.2:3})                                   % X坐标轴刻度标签
legend('A', 'B', 'C', 'D')

适用场景

业务分析
常用于销售、市场或财务数据的分析,如展示不同产品线在多个区域的销售额分布。

人口统计
用于展示人口结构、教育水平或就业情况在不同地区或时间的变化。

资源分配
可视化预算、时间或资源的分配情况,例如项目在不同阶段的资金投入比例。

学术研究
在社会科学或医学研究中,展示调查结果或实验数据的分类汇总。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值