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

如何在MATLAB中为索引列(又称分组列)绘制变异图

在MATLAB中生成变异索引列图

这类图表的核心是按分组索引展示数据的变异范围(如极值),同时标记关键统计量(如中位数、均值),以下是实现代码:

步骤1:构造示例数据

% 定义分组类别
categories = {'Group A', 'Group B', 'Group C', 'Group D'};
% 生成各组样本数据
groupData = [
    randn(20,1)+1;   % Group A
    randn(25,1)+3;   % Group B
    randn(18,1)-1;   % Group C
    randn(22,1)+0.5; % Group D
];
% 标记每个数据点所属分组
groupIdx = [ones(20,1); 2*ones(25,1); 3*ones(18,1); 4*ones(22,1)];

步骤2:计算分组统计量

stats = struct();
for i = 1:length(categories)
    idx = groupIdx == i;
    stats(i).min = min(groupData(idx));   % 最小值
    stats(i).max = max(groupData(idx));   % 最大值
    stats(i).median = median(groupData(idx)); % 中位数
end

步骤3:绘制变异图

figure('Position', [100 100 600 400]);
hold on; box on;

% 绘制每组的范围竖线
for i = 1:length(categories)
    % 极值范围竖线
    plot([i i], [stats(i).min, stats(i).max], 'k-', 'LineWidth', 1.5);
    % 中位数标记
    plot(i, stats(i).median, 'rs', 'MarkerFaceColor', 'r', 'MarkerSize', 8);
    % 叠加原始数据点(可选,添加透明度避免重叠)
    idx = groupIdx == i;
    plot(i*ones(sum(idx),1), groupData(idx), 'bo', 'MarkerSize', 4, 'MarkerFaceColor', 'b', 'Alpha', 0.6);
end

% 设置坐标轴与标签
set(gca, 'XTick', 1:length(categories), 'XTickLabel', categories);
xlabel('分组索引');
ylabel('数值');
title('变异索引列图');
hold off;

自定义调整选项

  • 若需展示均值而非中位数,将median替换为mean
  • 修改标记样式:调整plot函数的Marker参数(如'o'圆形、'^'三角形)
  • 更改配色:修改'Color'或'MarkerFaceColor'参数
  • 如需展示四分位距,可计算上下四分位数,搭配errorbar函数补充绘制

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:17:27