用python将曲线绘制到一组点

用python将曲线绘制到一组点,python,scipy,curve-fitting,Python,Scipy,Curve Fitting,我有 及 我附上了一张图,上面显示的是: 我需要用函数f(x)=a*exp(-x/b)+c来拟合曲线 但是,我无法使scipy曲线拟合工作。如何进行此操作?您必须定义要拟合的函数,然后将其传递给curve\u fit。函数必须首先取自变量,然后取所有剩余参数 定义函数(x,a,b,c): 返回a*np.exp(-x/b)+c #获取参数和协方差 参数,cov=scipy.optimize.curve_fit(f=f,扩展数据=x_数据,ydata=y_数据) #为每个参数声明专用字母 a、 b

我有

我附上了一张图,上面显示的是:

我需要用函数f(x)=a*exp(-x/b)+c来拟合曲线


但是,我无法使scipy
曲线拟合工作。如何进行此操作?

您必须定义要拟合的函数,然后将其传递给
curve\u fit
。函数必须首先取自变量,然后取所有剩余参数

定义函数(x,a,b,c): 返回a*np.exp(-x/b)+c #获取参数和协方差 参数,cov=scipy.optimize.curve_fit(f=f,扩展数据=x_数据,ydata=y_数据) #为每个参数声明专用字母 a、 b,c=参数 #密谋 plt.绘图(x_数据,y_数据) plt.plot(x_数据,[func(x,a=a,b=b,c=c)表示x_数据中的x]) plt.show()

您的意思是必须将f(x)拟合到数据中吗?您可以使用scipy
curve\u fit
来实现这一点。如果它不能正常工作,请说明你做了什么,问题是什么。然而,在我看来,你描述的函数并不是这个数据的最佳模型。也许你的意思是
a*x*exp(-x/b)+c
x_data = [3, 6, 9, 12, 16, 21, 28, 50]
y_data = [0, 333.33333333, 333.33333333, 333.33333333, 250, 200, 142.85714286, 45.45454545]