如何根据测量数据拟合我的图?

时间:2012-07-12 07:43:42

标签: matplotlib curve-fitting

我如何适应我的情节?

到目前为止,我已经得到了以下代码,它将一个数组中的各种图形(来自实验的数据)绘制成循环:

import matplotlib as plt
plt.figure(6)
plt.semilogx(Tau_Array, Correlation_Array, '+-')
plt.ylabel('Correlation')
plt.xlabel('Tau')
plt.title("APD" + str(detector) + "_Correlations_log_graph")
plt.savefig(DataFolder + "/APD" + str(detector) + "_Correlations_log_graph.png")

到目前为止,这是一个对数图,但我想知道拟合过程如何在这里工作。最后,我想有一些公式或/和图表,它最能描述我测量的数据。

如果有人可以帮助我,我会很高兴的!

1 个答案:

答案 0 :(得分:3)

您可以使用curve_fit中的scipy.optimize来实现此目的。这是一个例子

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

def func(x,a):
   return np.exp(a*x)

x,y,z = np.loadtxt("fit3.dat",unpack=True)

popt,pcov = curve_fit(func,x,y)
y_fit = np.exp(popt[0]*x)


plt.plot(x,y,'o')
plt.errorbar(x,y,yerr=z)
plt.plot(x,y_fit)
plt.savefig("fit3_plot.png")
plt.show()

在您的案例中,您可以相应地定义funcpopt是一个包含拟合参数值的数组。