【问题标题】:read and plot multiple txt files in python在python中读取和绘制多个txt文件
【发布时间】:2014-07-13 17:31:33
【问题描述】:

我有一些输出文件,即频率 1 .txt 、频率 2 .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()

如何绘制所有文件?

【问题讨论】:

  • 我根本不知道numpy,但你可以通过将所有数据写入单个文件with open('path/to/outfile', 'a') as outfile: for infilepath in infilepaths: with open(infilepath) as infile: outfile.write(infile.read()+"\n") 然后加载它来破解它
  • 问题不清楚。你想把它们画在同一张图上吗?单独的图表?在您的示例中,您试图在蓝色和红色之间实现什么区别?
  • 实际上发生了错误的红色和蓝色,对此我很抱歉,我想要所有 txt 文件的单独图

标签: python matplotlib


【解决方案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')

【讨论】:

    【解决方案2】:

    只是想在@Korem 的回答中添加一些内容。您可以创建一个list 的文件名,然后使用for 循环而不是手动编写文件名来传递它。

    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()
    

    【讨论】:

      【解决方案3】:

      而不是

      plt.show()
      

      使用

      plt.save("chart1.png")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多