【发布时间】:2021-09-27 19:34:20
【问题描述】:
我有一组如下所示的数据点:
x = [0, 2, 4, 7]
y = [100, 62, 60, 56]
我需要拟合一个遵循以下等式的指数曲线:
C = C0 * e^(-kdecay*t)
其中C为y,C0为时间点0的y值,t为x。
目前我有绘制时间点的代码,但我需要添加指数曲线。
plt.plot(x,y,color='indianred', ls='none', linewidth=2)
plt.errorbar(x,y,yerr,marker='o', color='indianred', ls='none', ecolor='k')
#set y axis limits
plt.ylim((0,120))
plt.xlabel("ActD (h)", fontsize=14)
plt.ylabel("mRNA (%)", fontsize=14)
非常感谢您的帮助。
编辑: 我正在尝试这个
from scipy.optimize import curve_fit
def func(C, kdecay, x):
y= C*np.exp(-kdecay*x)
return y
popt, _ = curve_fit(func, x, y)
C, kdecay = pop
我可能会错过这部分,因为它的形状与我的函数不同:
print('y=%.5f*x+%.5f'%(C,kdecay))
我真的是 Python 新手,如果你能给我一个明确的答案而不是仅仅建议一个库,那将是非常有帮助的。
【问题讨论】:
-
谢谢,但它看起来不像返回函数。绘制曲线的一部分,我还需要函数的值。
-
你可以用你的函数遍历 x 值并得到正确的 y 值吗?
标签: python python-3.x scipy curve-fitting data-fitting