在python中读取并绘制多个txt文件

时间:2014-07-13 17:31:34

标签: python matplotlib

我有一些输出文件,即frequency1 .txt,frequency2 .txt等等(直到21)。在每个txt文件中我有10列并假设n行,现在我需要为所有这些txt文件绘制第2列和第3列。我能够绘制单个txt文件

import numpy as np
from matplotlib import pyplot as plt

data=np.loadtxt('frequecy1.txt')
pl.plot(data[:,1],data[:,2],'bo')
X=data[:,1]
Y=data[:,2]
plt.plot(X,Y,':ro')
plt.ylim((0,55000))
plt.show()

我如何绘制所有文件?

3 个答案:

答案 0 :(得分:1)

首先,不需要同时导入pylab和pyplot。其次,如果所有文件的结构都相同,则此代码应该有效:

import numpy as np
import matplotlib.pyplot as plt

for fname in ('frequency1.txt', 'frequency2.txt' ...):
    data=np.loadtxt(fname)
    X=data[:,1]
    Y=data[:,2]
    plt.plot(X,Y,':ro')
plt.ylim((0,55000))
plt.show() #or
plt.save('figure.png')

答案 1 :(得分:1)

只想在@ Korem的回答中添加一些东西。您可以创建import numpy as np import matplotlib.pyplot as plt filelist=[] for i in range(1,5): filelist.append("frequency%s.dat" %i) for fname in filelist: data=np.loadtxt(fname) X=data[:,0] Y=data[:,1] plt.plot(X,Y,':ro') plt.show() 个文件名,然后使用Gender.push("Gender " + data[i].JenisKelaminID); 循环传递它,而不是手动编写文件名。

if(data[i].JenisKelaminID == 1){
Gender.push("Men");
} else if(data[i].JenisKelaminID == 2){
Gender.push("Women");
} else {
Gender.push("Other");
}

答案 2 :(得分:0)

而不是

plt.show()

使用

plt.save("chart1.png")