をフィッティング私は、このデータへの放物線に合うようにしようとしている恐ろしいフィットを取得しています。 私は最初にオブジェクトの位置であるデータのヒストグラムを作成し、ヒストグラムのビン数の負のログ値を放物線の当てはめを使ってその位置にプロットします。 私が使用していたコードはこれです:ここ
time,pos=postime()
plt.plot(time, pos)
poslen=len(pos)
plt.xlabel('Time')
plt.ylabel('Positions')
plt.show()
n,bins,patches = plt.hist(pos,bins=100)
n=n.tolist()
plt.show()
l=len(bins)
s=len(n)
posx=[]
i=0
j=0
pbin=[]
sig=[]
while j < (l-1):
pbin.append((bins[j]+bins[j+1])/2)
j=j+1
while i < s:
if n[i]==0:
pbin[i]=0
else:
sig.append(np.power(1/n[i],2))
n[i]=n[i]/poslen
n[i]=np.log(n[i])
n[i]=n[i]*(-1)
i=i+1
n[:]=[y for y in n if y != 0]
pbin[:]=[y for y in pbin if y != 0]
from scipy.optimize import curve_fit
def parabola(x, a , b):
return a * (np.power(x,2)) + b
popt, pcov = curve_fit(parabola, pbin, n)
print popt
plt.plot(pbin,n)
plt.plot(pbin, parabola(pbin, *popt), 'r-')
リンクをクリックしてください。 –
ようこそ、あなたは完全なコードを提供できますか? ([最小、完全、および検証可能な例](http://stackoverflow.com/help/mcve)を参照してください) – Nuageux
ありがとうございます。 私はしました –