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

如何将给定的CoverageArea向量表示为箱线图?技术咨询

思路与实现方案

1. 数据适配性分析

你现有的数据只有每个位置的最小值(min)、平均值(mean)、最大值(max),没有单个样本的原始数据,不适合绘制传统箱线图(传统箱线图需要基于样本计算四分位数、中位数等统计量)。更适合绘制带误差线的分组图,来展示每个数据点的取值范围和中心趋势,效果可以和你想要的示例图风格一致。

2. 数据对应关系梳理

你的x向量是[15 15 30 30 45 45 60 60],对应8个数据位置,每个x值(15、30、45、60)各有两组数据,每组数据对应CoverageArea_min、CoverageArea_mean、CoverageArea_max的一个元素:

  • x=15的两组:第1、2个位置的min/mean/max
  • x=30的两组:第3、4个位置的min/mean/max
  • x=45的两组:第5、6个位置的min/mean/max
  • x=60的两组:第7、8个位置的min/mean/max

3. 具体实现代码(Matlab为例)

用errorbar函数绘制带误差线的分组图,区分每组样式避免重叠:

% 原始数据
CoverageArea_mean = [84.4735,0,21.1779,4.5211,6.4247,2.3795,2.1416,0]; 
CoverageArea_min = [98.5128,92.5640,21.1779,21.1779,6.9007,6.9007,2.1416,2.1416]; 
CoverageArea_max = [70.1963,0,19.0363,0.4759,5.9488,0.2380,2.1416,0]; 
x = [15 15 30 30 45 45 60 60];

% 给每组数据添加x轴偏移,避免重叠
x_offset = [-0.8, 0.8, -0.8, 0.8, -0.8, 0.8, -0.8, 0.8];
x_adjusted = x + x_offset;

figure;
hold on;
% 绘制第一组数据(每个x值的第一个数据点)
errorbar(x_adjusted(1:2:end), CoverageArea_mean(1:2:end), ...
         CoverageArea_mean(1:2:end)-CoverageArea_min(1:2:end), ...
         CoverageArea_max(1:2:end)-CoverageArea_mean(1:2:end), ...
         'o-', 'LineWidth',1.5, 'MarkerSize',8);
% 绘制第二组数据(每个x值的第二个数据点)
errorbar(x_adjusted(2:2:end), CoverageArea_mean(2:2:end), ...
         CoverageArea_mean(2:2:end)-CoverageArea_min(2:2:end), ...
         CoverageArea_max(2:2:end)-CoverageArea_mean(2:2:end), ...
         's--', 'LineWidth',1.5, 'MarkerSize',8);

% 配置图表样式
xlabel('X轴标签');
ylabel('Coverage Area');
xticks([15,30,45,60]);
legend('分组1', '分组2');
grid on;
hold off;

4. 模拟箱线图视觉样式(可选)

如果要贴近箱线图的矩形区间样式,可以用矩形绘制min到max的范围,红线标记平均值:

figure;
hold on;
bar_width = 1.2;
for i = 1:length(x)
    % 绘制取值范围矩形
    rectangle('Position', [x(i)-bar_width/2, CoverageArea_min(i), bar_width, CoverageArea_max(i)-CoverageArea_min(i)], ...
              'FaceColor', [0.8,0.8,0.8], 'EdgeColor','k');
    % 绘制平均值水平线
    line([x(i)-bar_width/2, x(i)+bar_width/2], [CoverageArea_mean(i), CoverageArea_mean(i)], ...
         'Color','r', 'LineWidth',2);
end
xticks([15,30,45,60]);
xlabel('X轴标签');
ylabel('Coverage Area');
grid on;
hold off;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:50:43