You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何为相关矩阵图的X/Y轴段添加色条标注

在MATLAB中给相关矩阵图添加X/Y轴侧边色条标注

我明白你想要的效果——在相关矩阵图的X、Y轴旁各加一段对应维度的色条标注对吧?其实可以通过创建独立的小坐标轴来实现,我给你整理了可直接复用的代码和关键说明:

完整实现代码

% 替换成你的真实数据
data = corrcoef(randn(20,20)); % 示例相关矩阵
row_segment_data = rand(20,1); % Y轴旁色条对应的行数据/类别
col_segment_data = rand(1,20); % X轴旁色条对应的列数据/类别

% 1. 初始化图形并设置主图位置(留出侧边空间)
figure('Position', [100, 100, 800, 700]);
main_ax = axes('Position', [0.15, 0.15, 0.7, 0.7]); % [左, 下, 宽, 高]

% 绘制主相关矩阵图
imagesc(data, 'Parent', main_ax);
title('Correlation plot', 'FontSize', 14);
colormap(main_ax, 'jet');
colorbar(main_ax);
set(main_ax, 'XTick', 1:size(data,2), 'YTick', 1:size(data,1)); % 保留刻度

% 2. 添加Y轴左侧的分段色条
y_side_ax = axes('Position', [0.08, 0.15, 0.05, 0.7]);
imagesc(row_segment_data, 'Parent', y_side_ax);
% 优化显示:隐藏X刻度,Y轴对齐主图行
set(y_side_ax, 'XTick', [], 'YTick', 1:size(data,1), 'YTickLabel', []);
colormap(y_side_ax, 'viridis'); % 可自定义配色,和主图区分或一致
ylabel(y_side_ax, 'Row Segments', 'Rotation', 90, 'FontSize', 10);

% 3. 添加X轴下方的分段色条
x_side_ax = axes('Position', [0.15, 0.08, 0.7, 0.05]);
imagesc(col_segment_data, 'Parent', x_side_ax);
% 优化显示:隐藏Y刻度,X轴对齐主图列
set(x_side_ax, 'YTick', [], 'XTick', 1:size(data,2), 'XTickLabel', []);
colormap(x_side_ax, 'viridis');
xlabel(x_side_ax, 'Column Segments', 'FontSize', 10);

% 同步主图与Y侧边色条的Y轴范围,确保完美对齐
linkaxes([main_ax, y_side_ax], 'y');

关键说明

  • 坐标轴位置控制:通过axes('Position', ...)手动分配主图和侧边色条的空间,你可以根据需求调整数值(比如加宽侧边色条、调整间距)
  • 侧边色条本质:其实是独立的小型imagesc图,你可以把row_segment_data/col_segment_data换成你的分段类别数据(比如固定的分组索引,如[1;1;2;2;3;3...]),就能得到分段色块效果
  • 配色自定义:侧边色条可以用和主图相同的colormap(比如改成jet),也可以用不同配色区分维度
  • 刻度对齐:用linkaxes确保主图和Y侧边色条的行刻度完全对齐,避免错位

内容的提问来源于stack exchange,提问作者Dinal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:40:07