pythonのmultiprocessing.poolを用いてフィッティングとプロットを行おうとしています。指数関数を含む関数でフィッテングしたときのエラーや警告(例えば、runtimeerror)がどのファイルで出力されるのかを知りたいのですが、エラーが出力されません。改善方法をご教授願います。
python
1import numpy as np 2import matplotlib.pyplot as plt 3from scipy.optimize import curve_fit 4import os 5import glob as gl 6from multiprocessing import Pool 7 8 9def func(x, a, b, c, d): 10 y = a*np.exp(-b*(x - d)) + c 11 return y 12 13def fit(filename): 14 try: 15 rawdata = np.loadtxt(filename, delimiter = ',', skiprows = 2) 16 17 popt_up, pcov_up = curve_fit(func, rawdata[:, 0], rawdata[:, 1]) 18 19 fig = plt.figure() 20 ax = fig.add_subplot() 21 ax.set_title(filename) 22 ax.scatter(rawdata[:, 0], rawdata[:,1], s = 3) 23 ax.plot(time_up, func(time_up, *popt_up), lw = 1) 24 plt.savefig(filename.replace('.dat', '.png'), dpi = 300) 25 except Exception as e: 26 print(e) 27 print(filename) 28 29if __name__ == '__main__': 30 31 file_list = [f for f in gl.glob('*.dat') if os.path.isfile(f)] 32 33 p = Pool(8) 34 p.map(fit, file_list) 35 p.close()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/08 02:18
2021/12/08 02:43
2021/12/08 03:39