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

DataFrame按Event列唯一值循环绘图异常问题求助

按DataFrame唯一Event值分别绘制对应图表的修正方案

你的代码能生成对应数量的图表且标题正确,但所有图表都显示了全量数据,核心原因是循环中未根据当前Event值过滤数据集,直接使用了原DataFrame的全部Date和Value列绘图。

修正后的代码

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame()
df['Date']=['2023-07-01', '2023-07-02','2023-07-03','2023-07-04','2023-07-05','2023-07-01', '2023-07-02','2023-07-03','2023-07-04','2023-07-05']
df['Event']=['abc','def','abc','def','abc','def','abc','def','abc','def']
df['Value']=[43,12,19,45,34,21,21,45,38,14]

eve = df['Event'].unique()
for q in eve:
    # 关键:过滤出当前Event对应的子数据集
    filtered_df = df[df['Event'] == q]
    plt.figure(figsize=(10,6))
    # 使用过滤后的数据集绘图
    plt.plot(filtered_df['Date'], filtered_df['Value'], marker='o', linestyle='-', label=f'Value ({q})')
    plt.xticks(rotation=90)
    plt.title(q, fontsize=18)
    plt.legend()  # 显示图例,提升可读性
    plt.show()
plt.close()

核心改动说明

  • 每次循环中新增filtered_df = df[df['Event'] == q],筛选出当前Event对应的所有行数据
  • 绘图时替换为filtered_df的Date和Value列,确保只绘制当前Event的数值
  • 额外添加图例并标注对应Event,让图表信息更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:52:12