循环许多文件并绘制它们

感谢您花时间阅读它,也许这是一个简单的问题。我有一个这样的文件(它们就像 200 个文件):


    Output of SMC2FS2: FAS for file 20123427.CB2A.BHE.sac.smc

 Nfreq_out = 

   8192

           freq            fas

  0.0000000E+00  6.6406252E-03

  2.4414062E-03  1.3868844E+04

  4.8828125E-03  3.0740834E+04

  7.3242188E-03  2.7857139E+04

  9.7656250E-03  1.6535047E+04

  1.2207031E-02  9.7825762E+03

  1.4648438E-02  6.1421987E+03

  1.7089844E-02  6.5783145E+03

  1.9531250E-02  5.6137949E+03

  2.1972656E-02  3.5297178E+03

要阅读它们,跳过标题并开始处理:


#define the path where I have the 200 files

pato='D:\\Seismic_Inves\\flc_grant\\120427\\smc2fs\\smooth'

os.chdir(pato)

lista=[]

#list all files with "kono_" 

for a in glob.glob('*kono_*'):

    lista.append(a)

#read and skip the header for all files

for archis in lista:

    with open(archis,'r') as leo:

       for _ in range(4):

            next(leo)

#start the proccesing

       for line in leo:

           leo=[x.strip() for x in leo if x.strip()]

           leos=[tuple(map(float,x.split())) for x in leo[1:]]

           f=[x[0] for x in leos]

           fas=[x[1] for x in leos]

           plt.figure(1)

           plt.plot(f,fas,'r')

           plt.yscale('log')

           plt.xscale('log')

           plt.show()

正如您可以想象的那样,这是一个频率与幅度图(FAS 图) 代码运行良好,但打开一个图形并只绘制一个文件,然后我需要关闭该图形,它将绘制第二个文件,依此类推。


问题是:


如何仅在一个图中绘制所有数据(200 个 fcsv 文件)。


@GlobalTraveler,这是使用您的建议的结果:


FAS Konoomachi_smooth_data


月关宝盒
浏览 127回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python