3 つの異なる時間範囲のセットについて、カウント率と時間の 3 つのセットのデータをオーバープロットする次のコードがあります。
#!/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 を試してみましたが、これは私のデータを完全に台無しにします。アドバイスをお願いします。それらのデータに適合する関数を最初に定義する必要がありますか? 「最小二乗」も探しました。これがこの問題の最善の解決策ですか?