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

多CSV文件合并绘图时plt.plot参数报错问题求助

问题解决思路

核心错误原因

plt.plot() 本身不支持直接用 x="c"、y="d" 这种列名字符串传参——它需要的是具体的数值数组,你把pandas绘图的语法和matplotlib原生语法搞混了。

额外的小问题

代码里用到了glob.glob()但没导入glob模块,运行时会先报NameError,得先补上导入。

修正后的代码

from matplotlib import pyplot as plt
import os
import pandas as pd
import glob  # 补上缺失的导入

path = r"C:\Users\my_data"
csv_files = glob.glob(os.path.join(path, "*.csv"))

for idx, file in enumerate(csv_files): 
    df = pd.read_csv(file, header=2, skiprows=1, usecols=["a", "b", "c", "d", "e"])  
    # 从DataFrame提取对应列的数据传入plt.plot
    plt.plot(df["c"], df["d"], label=f"文件{idx+1}")  # 加label方便区分不同文件的曲线

plt.xlabel("c")
plt.ylabel("d")
plt.legend()  # 显示图例区分各曲线
plt.show()

关键说明

  • 调用plt.plot()时,要传入df["c"]和df["d"]这种具体的Series数据,而不是列名字符串
  • 加上label参数和plt.legend(),能直观区分每个CSV文件对应的曲线
  • 必须补上import glob,避免未定义变量的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:56:03