MATLAB可视化1:(基于2003年国赛B题 露天矿生产的车辆安排可视化)MATLAB绘制带有蓝色虚线标注的矩阵热力图(求个关注、点赞和收藏)

矩阵热力图(Matrix Heatmap)是一种高效的数据可视化形式,通过颜色梯度(如深色表示高值,浅色表示低值)和数字标签的结合,直观呈现矩阵数据的分布规律。在MATLAB中实现此类热力图时,可通过添加蓝色虚线框线来突出关键区域或特殊数据点,从而增强图表的可读性与分析价值。

该方法适用于多维数据对比、聚类分析或异常值标注等场景,既能保留原始数据的精确性,又能通过视觉元素快速传递核心信息。

样图展示

这种热力图在数据分析中非常实用,尤其适合以下场景:

  • 资源调度优化(如您的案例):
    展示不同铲位(行)与卸点(列)之间的运输量,快速识别高负荷/闲置的铲位和卸点。
    (例如:铲位1的岩石漏运输量81为深色高值,铲位5-7全为0值需关注)

  • 异常检测
    蓝色框线可标注异常数据(如极高/极低值、关键目标区域),便于聚焦分析。

  • 模式识别
    通过颜色梯度直观发现数据分布规律(如铲位2同时服务多个卸点,铲位10集中在倒装场II)。

  • 决策支持
    辅助优化资源分配(如调整铲位任务、平衡卸点负载)。

代码实现 

实现代码功能分析

该代码实现了一个露天矿运输次数分配热力图的可视化功能,主要包含以下技术要点:

% 定义铲位和卸点标签
shovelLabels = {'铲位1', '铲位2', '铲位3', '铲位4', '铲位5', ...
                '铲位6', '铲位7', '铲位8', '铲位9', '铲位10'};
unloadLabels = {'矿石漏', '倒装场I', '倒装场II', '岩石漏', '岩场'};

数据矩阵构建

运输数据矩阵采用10×5结构(10铲位×5卸点),数值表示运输次数:

transportData = [0    0    0   81    0;   % 铲位1
                13   42   13    0    0;   % 铲位2
                0     0    2   43    0;   % 铲位3
                0    43    0    0    0;   % 铲位4
                0     0    0    0    0;   % 铲位5
                0     0    0    0    0;   % 铲位6
                0     0    0    0    0;   % 铲位7
                54    0    0    0    0;   % 铲位8
                0     0    0    0    0;   % 铲位9
                11    0   70    0   15];  % 铲位10

可视化定制技术

创建橙色渐变颜色映射:

orangeGradient = [linspace(1,1,64)' linspace(1,0.4,64)' linspace(1,0,64)'];

热力图基础设置包含:

  • 图例范围[0 80]
  • 中文黑体支持
  • 自定义单元格格式
  • 网格线隐藏
h = heatmap(unloadLabels, shovelLabels, transportData);
h.Title = '原则1露天矿运输次数分配热力图';
h.Colormap = orangeGradient;
h.ColorLimits = [0 80];
h.ColorbarVisible = 'on';
h.CellLabelFormat = '%d';
h.FontName = 'SimHei';
h.FontSize = 12;
h.GridVisible = 'off';

特殊元素标注

通过坐标计算实现行高亮标注:

highlightRows = [1, 2, 3, 4, 8, 10];
for i = 1:length(highlightRows)
    rowIdx = highlightRows(i);
    yPos = axPos(2) + axPos(4) - rowIdx * rowHeight;
    annotation('rectangle', ...
        [axPos(1), yPos, axPos(3), rowHeight], ...
        'EdgeColor', 'b', ...
        'LineStyle', '--', ...
        'LineWidth', 1.5);
end

兼容性处理

多版本MATLAB颜色条获取方案:

try
    cbar = h.Colorbar;
catch
    try
        cbar = h.ColorbarHandle;
    catch
    end
end

颜色条最终设置包含:

  • 固定刻度间隔
  • 中文标签支持
  • 单位标注
cbar.Ticks = [0 20 40 60 80];
cbar.TickLabels = {'0', '20', '40', '60', '80'};
cbar.Label.String = '运输次数';
cbar.Label.FontSize = 12;
cbar.Label.FontName = 'SimHei';

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝桉(努力版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值