MATLAB 热力图制作指南:从原理到实战

        在数据分析与可视化工作中,热力图(heatmap)是一种直观表现数据强度变化的方式。无论是展示产品销售、地理分布、相关系数矩阵还是生物学数据,热力图都能帮助我们发现模式与异常。

        本文将从基础知识出发,带你一步步在 MATLAB 中构建热力图,包括数据准备、绘图函数的使用、样式优化等,并在结尾提供一个完整的销售案例作为示范。

一、热力图是什么?

        热力图通过颜色深浅或色彩差异表示数值大小,是二维数据可视化的常见手段。X轴和Y轴代表两个分类维度,颜色代表这两个维度下对应数值的大小。例如:

  • 地区 vs 产品类型 → 销售额

  • 时间 vs 传感器编号 → 读数强度

  • 基因 vs 条件 → 表达水平

二、MATLAB 中绘制热力图的方法

        MATLAB 提供了专用函数 heatmap() 来绘制热力图。基本语法如下:

heatmap(xLabels, yLabels, dataMatrix);

        其中:

  • xLabels:横轴标签(如产品类别)

  • yLabels:纵轴标签(如地区)

  • dataMatrix:二维数值数据

三、准备数据 

        热力图的数据通常来自矩阵透视表。在 MATLAB 中,我们可以从各种数据源构建热力图矩阵,包括:

  • 手动构造数据矩阵

  • 从 Excel 或 CSV 中读取并转换

  • 从数据库或实验设备导入数据

        例如,假设我们有如下销售数据:

地区 类别 销售金额
华北 家电 1200
华东 服装 800

        我们需要对这些分类维度进行整理,构造成如下矩阵形式:

           家电   服装
华北        1200   0
华东         0     800

        然后将其传入 heatmap() 即可绘图。 

四、优化热力图样式

        使用 heatmap() 绘制后,可以进一步美化图表:

h = heatmap(xLabels, yLabels, dataMatrix);
h.Title = '产品销售热力图';
h.XLabel = '产品类别';
h.YLabel = '地区';
h.CellLabelFormat = '%.0f 元'; 
colormap parula;                % 可选 jet, hot, cool 等
h.ColorLimits = [0 1600];       % 固定颜色映射范围

        这样,图表会更加清晰、专业。 

五、实战示例:销售数据热力图

        以下是一个使用 Excel 数据制作热力图的完整案例:

% 读取 Excel 数据,保留中文列名
T = readtable('sales.xlsx', 'VariableNamingRule', 'preserve');
% 提取列
region = T.('地区');
category = T.('产品类别');
sales = T.('销售金额');
% 构建透视矩阵
xLabels = unique(category, 'stable');  % 横轴
yLabels = unique(region, 'stable');    % 纵轴
dataMatrix = zeros(length(yLabels), length(xLabels));
for i = 1:length(yLabels)
    for j = 1:length(xLabels)
        value = sales(strcmp(region, yLabels{i}) & strcmp(category, xLabels{j}));
        if ~isempty(value)
            dataMatrix(i, j) = value;
        end
    end
end
% 绘制热力图
h = heatmap(xLabels, yLabels, dataMatrix);
h.Interpreter = 'none';
h.Title = '各地区各类产品销售金额热力图';
h.CellLabelFormat = '%.0f 元';
colormap hot;
h.ColorLimits = [0 1600];

 实现热力图:

MATLAB 热力图制作指南:从原理到实战_第1张图片

六、小结与建议

        MATLAB 的 heatmap 是一个强大且易用的工具,非常适合处理具有分类维度的数据。如果你经常处理表格数据、做趋势分析或制作报告,掌握热力图制作技巧无疑会极大提升你的工作效率与表达力。

延伸阅读(Matlab官方文件)

https://www.mathworks.com/help/matlab/ref/heatmap.html

你可能感兴趣的:(信息可视化,matlab,#数据可视化,#热力图)