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

请求制作自定义箱型图以对比DRCT与DWPT的MAE指标

自定义MAE参数对比图表实现方案

需求说明

手里有个数据集,字段包括Parameter(仅DRCT、DWPT两个取值)、Method、RMSE、MAE、FID。要制作特殊图表:

  • 横轴放置DRCT和DWPT两个参数类别
  • 不显示纵轴
  • 每个参数对应一个方框,方框上下边分别代表该参数下所有方法的MAE最小值与最大值
  • 方框内用散点标出各方法的MAE具体数值

实现思路(基于Python Matplotlib)

  1. 按Parameter分组,计算每组MAE的最大、最小值,确定方框的上下范围
  2. 给每个参数在横轴分配固定位置,手动绘制方框(避开默认箱型图的冗余元素)
  3. 在对应方框内用散点标记各方法的MAE数值

代码示例

假设数据以Pandas DataFrame格式存储,替换示例数据即可直接使用:

import matplotlib.pyplot as plt
import pandas as pd

# 示例数据集,替换为你的真实数据
data = pd.DataFrame({
    'Parameter': ['DRCT', 'DRCT', 'DRCT', 'DWPT', 'DWPT', 'DWPT'],
    'Method': ['方法A', '方法B', '方法C', '方法A', '方法B', '方法C'],
    'MAE': [0.2, 0.4, 0.3, 0.15, 0.35, 0.25]
})

# 按参数分组计算MAE的最小、最大值
param_stats = data.groupby('Parameter')['MAE'].agg(['min', 'max']).reset_index()

# 初始化画布
plt.figure(figsize=(8, 4))
# 给两个参数分配横轴位置
x_pos = [0, 1]
param_names = param_stats['Parameter'].tolist()

# 逐个绘制每个参数的方框与散点
for idx, (param, mae_min, mae_max) in enumerate(param_stats.itertuples(index=False)):
    # 绘制方框四条边
    plt.plot([x_pos[idx]-0.2, x_pos[idx]+0.2], [mae_min, mae_min], 'k-')  # 下边
    plt.plot([x_pos[idx]-0.2, x_pos[idx]+0.2], [mae_max, mae_max], 'k-')  # 上边
    plt.plot([x_pos[idx]-0.2, x_pos[idx]-0.2], [mae_min, mae_max], 'k-')  # 左边
    plt.plot([x_pos[idx]+0.2, x_pos[idx]+0.2], [mae_min, mae_max], 'k-')  # 右边

    # 绘制当前参数下各方法的MAE散点
    current_data = data[data['Parameter'] == param]
    plt.scatter([x_pos[idx]]*len(current_data), current_data['MAE'], color='#ff4444', zorder=10)

    # 可选:给散点标注方法名称,提升可读性
    for _, row in current_data.iterrows():
        plt.text(x_pos[idx]+0.06, row['MAE'], row['Method'], va='center')

# 设置横轴标签
plt.xticks(x_pos, param_names)

# 隐藏纵轴,符合需求
plt.gca().get_yaxis().set_visible(False)

# 调整布局避免元素截断
plt.tight_layout()
plt.show()

关键说明

  • 手动绘制方框是因为默认箱型图会包含中位数、四分位数等冗余元素,仅保留我们需要的上下边界
  • zorder参数确保散点显示在方框上方,不会被遮挡
  • 不需要方法名称时,可删除标注相关代码段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:22:46