从多个.txt文件中读取数据以在Python中绘制一个图形

2024-04-26 05:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的python代码用于从3.txt文件打印数据(两列之间用空格分隔)。但是,我想从位于同一文件夹中的更多文本文件中打印数据。是否有一种方法可以从文件夹中的所有.txt文件中读取数据,并将它们全部绘制在同一个图形上

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('10mm.txt',sep='\s+',header=None)
data = pd.DataFrame(data)

x1 = data[0]
y1 = data[1]
plt.plot(x1, y1, label = "10 mm")

data = pd.read_csv('20mm.txt',sep='\s+',header=None)
data = pd.DataFrame(data)

x2 = data[0]
y2 = data[1]
plt.plot(x2, y2, label = "20 mm")

data = pd.read_csv('30mm.txt',sep='\s+',header=None)
data = pd.DataFrame(data)

x3 = data[0]
y3 = data[1]
plt.plot(x3, y3, label = "30 mm")

plt.xlim(0.15)
plt.ylim(0)
plt.xlabel('x - axis')
plt.ylabel('y - axis')
plt.title('')
plt.legend()
plt.show()

Tags: 文件csv数据txtnonedataframereaddata
1条回答
网友
1楼 · 发布于 2024-04-26 05:22:15

您可以循环浏览目录中的文件,如果文件以.txt结尾,则可以加载数据并进行打印。请注意pd.read_csv()已经返回了一个数据帧,因此您不需要再次将data转换为数据帧

您必须用directory路径替换directory

import os

# Replace this directory with your own directory. 
directory = 'C:/Users/admin'

for filename in os.listdir(directory):
    if filename.endswith(".txt") :
        data = pd.read_csv(filename, sep='\s+', header=None)
        # data = pd.DataFrame(data) # This step is redundant
        plt.plot(data[0], data[1], label = filename.split('.')[0])
    else:
        continue

plt.xlim(0.15)
# Rest of the code
plt.show()        

相关问题 更多 >