如何在MATLAB中高亮柱状图里反射效应带来的差值部分?
MATLAB 分组柱状图反射差值高亮实现方案
核心思路
在「无反射」基准柱状图的顶部,叠加绘制**反射差值(带反射值 - 无反射值)**的柱状条,通过颜色区分突出反射效应的影响。关键是利用bar函数的BaseValue参数,指定差值柱的底部基准为对应无反射数值,确保两者精准对齐。
具体实现代码
替换示例数据为你的实际数据即可直接运行:
% 替换为你的实际数据 NoReflect = [120, 150, 180]; % 无反射覆盖面积数组 WithReflect = [160, 195, 225]; % 带反射覆盖面积数组 QAM_labels = {'QAM4', 'QAM16', 'QAM64'}; % 调制方式标签 x_pos = 1:length(NoReflect); % x轴位置索引 % 若为右侧子图,先指定subplot位置,比如subplot(1,2,2) subplot(1,2,2); hold on; % 1. 绘制无反射基准柱,设置基础样式 base_bar = bar(x_pos, NoReflect, 'FaceColor', '#4a6fe3', 'BarWidth', 0.4); % 2. 计算反射差值 reflect_diff = WithReflect - NoReflect; % 3. 在基准柱顶部绘制差值高亮柱,指定底部基准为无反射值 diff_bar = bar(x_pos, reflect_diff, 'FaceColor', '#e74c3c', 'BarWidth', 0.4, 'BaseValue', NoReflect); % 4. 图表美化(按需调整) xticks(x_pos); xticklabels(QAM_labels); xlabel('调制方式'); ylabel('覆盖面积 (m²)'); legend({'无反射基线', '反射效应差值'}, 'Location', 'northwest'); title('反射效应对覆盖面积的影响'); grid on; hold off;
关键参数说明
BaseValue: 强制差值柱的底部从对应无反射数值开始绘制,完美叠加在基准柱顶部BarWidth: 保持基准柱和差值柱宽度一致,避免错位- 颜色选择:用对比色(如蓝色基准+红色高亮)强化视觉差异,可根据需求替换颜色代码
适配现有代码注意事项
如果你的现有代码是包含两组数据的分组柱状图,只需保留右侧图中「无反射」的柱子绘制逻辑,再叠加上述差值柱代码即可;若右侧图是独立子图,直接将上述代码嵌入对应subplot块中即可。
内容的提问来源于stack exchange,提问作者SH_IQ
相关产品推荐
相关产品推荐

