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

如何修改Matlab boxchart函数的四分位距(IQR)默认参数

boxchart自定义四分位距(IQR)实现方法

boxchart本身没有暴露直接修改分位计算规则的参数,你可以通过手动计算自定义分位、手动覆盖图形对象属性的方式实现需求,操作步骤如下:

  1. 提前按你的业务规则计算所需的自定义分位值、须端点、离群点集合,分位计算直接调用quantile函数即可,和boxchart原生计算逻辑完全对齐
  2. 绘制boxchart后获取图形对象,关闭自动更新属性,再逐一替换对应属性值

完整代码示例

% 1. 准备数据与自定义参数
rng default % 固定随机种子方便复现,实际使用可删除
sample_data = randn(1000, 1); % 替换为你的实际数据
custom_lower_quantile = 0.2; % 自定义下四分位,示例设为20%分位,可按需修改
custom_upper_quantile = 0.8; % 自定义上四分位,示例设为80%分位,可按需修改
whisker_lower_quantile = 0.05; % 自定义下须端点分位,可按需调整
whisker_upper_quantile = 0.95; % 自定义上须端点分位,可按需调整

% 2. 计算自定义指标
q_lower = quantile(sample_data, custom_lower_quantile);
q_upper = quantile(sample_data, custom_upper_quantile);
w_lower = quantile(sample_data, whisker_lower_quantile);
w_upper = quantile(sample_data, whisker_upper_quantile);
custom_outliers = sample_data(sample_data < w_lower | sample_data > w_upper);

% 3. 绘图并修改属性
b = boxchart(sample_data);
b.AutoUpdate = 'off'; % 必须关闭自动更新,否则修改会被原生逻辑覆盖
b.Box = [q_lower, q_upper]; % 修改箱体上下边界,对应自定义四分位
b.WhiskerEnds = [w_lower, w_upper]; % 修改须的上下端点
b.OutlierData = custom_outliers; % 替换为自定义规则下的离群点
% 若需要修改中位数显示,可添加 b.Median = median(sample_data);

多组箱线图适配方法

如果绘制多组数据的箱线图,boxchart返回的是对象数组,遍历每个对象分别计算对应组的自定义指标、修改属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:06:04