2017-07-16 62 views
0

所以,我是Python新手。我有484个宇宙飞船数据文件,文件名为WI_H0_MFI_1,WI_H0_MFI_2 ...... WI_H0_MFI_484。我想将所有这些484个txt文件绘制在一个图中,但我没有成功。我使用了下面的代码,但无济于事。在Python中绘制一张图

import numpy as np 
import matplotlib.pyplot as plt 
filelist=[] 
for i in range(1,485): 
    filelist.append("/Users/Hrihaan/Desktop/WI_H0_MFI_%s.txt" %i) 
for fname in filelist: 
    data=np.loadtxt(fname) 
    x=data[:,1] 
    x_1= x - data[0,1] 
    x_2= x_1 - 86400 
    x_3 = x_2/3600 
    Y=data[:,2] 
    np.clip(Y,0,None) 
    plt.plot(x_3, np.clip(Y,0,None)) 
plt.show() 

任何帮助将不胜感激。

+0

欢迎光临Stack Overflow!你能描述什么不起作用吗?你看到了什么(或没有看到),这与你的预期有什么不同? – agtoever

+0

感谢您的回复。当我使用data = np.loadtxt(fname)和print(fname)时,它会按顺序打印出所有文件名,但我只能得到一个txt文件的图,我预计会得到484个图。任何有关如何遍历所有这些建议的建议将非常有用。 – Hrihaan

+0

告诉计算机显示图的命令是'plt.show'。目前,你把它放在循环之外,这就是为什么你只有一个输出图(你只能看到最后一个输出图)。尝试将命令放入循环中;-)然后,您将遇到的问题是,显示484个绘图很无聊......为什么不保存它们? –

回答

0

我会保持它非常容易,并使用终端命令cat首先合并文件...请参阅enter link description here。然后加载组合的文件和图。

语法:cat file1 newline file2 newline file3 > newfile

+0

如果您想将所有数据集绘制为单个数据集,则此方法可行。如果您需要分别绘制每个数据集,那么还有一些额外的工作。 –

+0

感谢albus_c的回复,我想单独绘制它们,但只绘制一张图。所以寻找任何循环选项,将贯穿其中每一个和情节。 – Hrihaan