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

Python绘制含最大值、最小值与平均值的epoch折线图问题

Python绘制Epoch对应Adaptation的最值与均值折线图

需求:绘制折线图,展示每个epoch对应的adaptation最大值、最小值与平均值,实现单个x轴对应三个y值的效果。

错误代码示例

import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

data = df.groupby(["epoch"],as_index=False).agg({'adaptation':{np.max, np.min, np.mean}})
data.reset_index(inplace=True)

ax = data.plot(x='epoch', y='adaptation', c='white')
plt.fill_between(x='epoch', y1='Low Value', y2='High Value', data=data)

plt.show()

数据集示例(data.csv)

epoch,adaptation
0,11538314
0,0
0,11983512
0,12897261
0,0
0,0
0,0
0,8931799
0,12849768
0,11138070
0,0
0,12522918
0,0
0,11309842
1,0
1,0
1,9626928
1,11579548
1,10486644
1,11085142
1,8866995
1,12704713
1,0
1,0
1,0
1,11435553
1,0
1,11833946
1,8031767
1,7454479
1,0
1,0
1,13015695
1,10756224
1,0
1,12295841
1,0
1,12224471
2,0
2,7088825
2,12784235
2,12823529
2,10266321
2,0
2,0
2,12671855
2,7107685
3,0
3,9771319
3,13072968
3,8451687
3,9556870
3,0
3,8557863
4,12200947
4,11080982
4,10201426
4,12249544
4,11955293
4,11910369
4,12048186
4,10688168
4,0
4,9276116

修正后的代码及说明

原代码核心问题是分组聚合后生成了多层列索引,导致绘图时无法正确识别列名;同时fill_between的参数引用逻辑错误。以下是修复后的代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# 读取数据
df = pd.read_csv('data.csv')

# 分组聚合并直接定义列名,避免多层索引问题
data = df.groupby("epoch", as_index=False).agg(
    max_adapt=('adaptation', np.max),
    min_adapt=('adaptation', np.min),
    mean_adapt=('adaptation', np.mean)
)

# 初始化画布
plt.figure(figsize=(10,6))

# 绘制平均值折线
plt.plot(data['epoch'], data['mean_adapt'], color='darkblue', label='平均值')

# 填充最大值与最小值之间的区域
plt.fill_between(data['epoch'], data['min_adapt'], data['max_adapt'], color='lightblue', alpha=0.3, label='最值范围')

# 添加图表元素
plt.xlabel('Epoch')
plt.ylabel('Adaptation')
plt.title('Epoch 对应 Adaptation 统计值')
plt.legend()
plt.grid(alpha=0.2)

# 显示图形
plt.show()

关键修复点:

  • 分组聚合时通过关键字参数直接定义列名,避免多层索引导致的列识别错误
  • fill_between直接传入数据列而非字符串,确保数值正确读取
  • 新增标签、图例、网格等元素,提升图表可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:40:51