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

如何用Python读取多个CSV文件并在同一张图绘制多条曲线

批量读取CSV并绘制对比曲线

以下是实现自动化批量绘图的改进代码,同时优化了路径处理和曲线区分逻辑:

import csv
import matplotlib.pyplot as plt
from glob import glob
import os

# 基础路径设置
base_path = '/ref_path/ref_computation/'

# 获取所有data开头的CSV文件
csv_files = glob(os.path.join(base_path, 'data*.csv'))

# 遍历每个CSV文件
for file_path in csv_files:
    x = []
    y = []
    # 提取文件名作为图例标签
    file_name = os.path.basename(file_path)
    
    with open(file_path, 'r') as csvfile:
        plots = csv.reader(csvfile, delimiter=',')
        # 如果CSV首行是表头,取消下面一行的注释以跳过
        # next(plots)
        for row in plots:
            x.append(float(row[1]))
            y.append(float(row[3]))
    
    # 绘制曲线并添加标签
    plt.plot(x, y, label=file_name)

# 添加图表元素
plt.xlabel('第2列数据')
plt.ylabel('第4列数据')
plt.title('多组数值计算结果对比')
plt.legend()  # 显示图例区分不同文件的曲线
plt.show()

关键改动说明

  • 批量获取文件:用glob配合os.path.join自动匹配目录下所有data*.csv格式的文件,无需手动逐个指定文件名,实现自动化遍历。
  • 曲线区分:提取每个文件的名称作为曲线标签,通过图例直观区分不同计算结果。
  • 路径兼容性:用os.path.join拼接路径,避免手动拼接时出现的跨平台路径分隔符问题。
  • 表头处理:如果你的CSV文件首行是列名而非数据,取消next(plots)的注释即可跳过表头行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:50:26