我有下面的代碼overplot三組數據,計數率隨時間,對三組不同的時間範圍:的Python:如何擬合曲線
#!/usr/bin/env python
from pylab import rc, array, subplot, zeros, savefig, ylim, xlabel, ylabel, errorbar, FormatStrFormatter, gca, axis
from scipy import optimize, stats
import numpy as np
import pyfits, os, re, glob, sys
rc('font',**{'family':'serif','serif':['Helvetica']})
rc('ps',usedistiller='xpdf')
rc('text', usetex=True)
#------------------------------------------------------
tmin=56200
tmax=56249
data=pyfits.open('http://heasarc.gsfc.nasa.gov/docs/swift/results/transients/weak/GX304-1.orbit.lc.fits')
time = data[1].data.field(0)/86400. + data[1].header['MJDREFF'] + data[1].header['MJDREFI']
rate = data[1].data.field(1)
error = data[1].data.field(2)
data.close()
cond = ((time > tmin-5) & (time < tmax))
time=time[cond]
rate=rate[cond]
error=error[cond]
errorbar(time, rate, error, fmt='r.', capsize=0)
gca().xaxis.set_major_formatter(FormatStrFormatter('%5.1f'))
axis([tmin-10,tmax,-0.00,0.45])
xlabel('Time, MJD')
savefig("sync.eps",orientation='portrait',papertype='a4',format='eps')
,因爲在這種方式,劇情太混亂了,我認爲要適合曲線。 我嘗試使用UnivariateSpline,但是這完全混淆了我的數據。 有什麼建議嗎? 我應該先定義一個適合這些數據的函數嗎? 我也尋找「最小平方」:這是這個問題的最佳解決方案?
如果你可以簡化你的代碼來顯示你想要的數據,它會幫助人們理解你的問題。現在,你的大部分代碼都是繪圖相關的,不適合。 – askewchan 2013-03-18 18:08:46
我編輯了代碼,以更簡單的方式。我希望現在更好。 – 2013-03-19 08:50:50