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

Matlab中如何在非均匀横坐标位置绘制箱线图?

解决Matlab非均匀横坐标箱线图的问题

没问题,这需求其实用Matlab的boxplot函数自带的参数就能轻松搞定!默认的箱线图确实会把每个分组放在均匀的1、2、3...位置上,但我们可以直接通过指定Positions参数来设置非均匀的横坐标位置,具体实现如下:

完整示例代码

rng('default') % 保证结果可复现
x1 = rand(5,1);
x2 = rand(10,1);
x3 = rand(15,1);
x = [x1; x2; x3];
g1 = repmat({'First'},5,1);
g2 = repmat({'Second'},10,1);
g3 = repmat({'Third'},15,1);
g = [g1; g2; g3];

% 定义你需要的非均匀横坐标位置
target_positions = [1.1, 2.5, 4.6];

% 绘制箱线图时指定位置参数
boxplot(x, g, 'Positions', target_positions);

% 同步设置x轴刻度和分组标签,保证显示对应
xticks(target_positions);
xticklabels({'First', 'Second', 'Third'});

% 可选:调整x轴范围,让箱线图显示更美观(避免贴到边缘)
xlim([min(target_positions)-0.5, max(target_positions)+0.5]);

关键说明

  • 'Positions'参数是核心:它接受一个数组,数组里的每个值对应一个分组箱线图的中心横坐标位置,数组长度要和你的分组数量一致。
  • 同步设置xticks和xticklabels是为了让x轴的刻度和分组名称准确对应到你设置的非均匀位置上,避免混淆。
  • 如果后续要增加更多分组,只需要扩展target_positions数组,同时对应更新分组数据即可,逻辑完全通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:29:15