如何读入和存储来自多个文本文件的x,y数据(在一个目录中)

时间:2015-02-21 20:53:06

标签: python arrays loops text graph

我有大约150个文本文件,我想从中加载数据,然后绘制到散点图。正在使用numpy.loadtxt加载文件,如下所示:

x,y=loadtxt('2.8k to 293k 15102014_rerun 147_0K.txt',skiprows=1,unpack=True,dtype=float,delimiter=",")

如何从给定文件夹加载~150个文件并将它们全部绘制出来。

1 个答案:

答案 0 :(得分:0)

以下内容读取当前文件夹中名为*.txt的所有文件,然后将其绘制到带有matplotlib的交互式图表中。我使用glob模块作为通配符匹配的目录列表,如果您只想要所有文件,则可以使用os.listdir('.')

import glob
from matplotlib import pyplot as plt
import numpy as np

plt.clf()
plt.subplot(111)
for f in glob.glob('*.txt'):
    print(f)
    x, y=np.loadtxt(f,skiprows=1,unpack=True,dtype=float,delimiter=",")
    plt.scatter(x,y)

plt.show()

以下代码将每组数据输出到不同的图表 - 名称取自输入文件的名称。

import glob
from matplotlib import pyplot as plt
import numpy as np

for f in glob.glob('*.txt'):
    base_name = f[:-4]
    print(f)
    fig = plt.figure() 
    ax = fig.add_subplot(1,1,1)

    x, y=np.loadtxt(f,skiprows=1,unpack=True,dtype=float,delimiter=",")
    ax.scatter(x,y)

    fig.savefig(base_name+'.png')