我是 Python 绘图的新手,所以请耐心等待。我今天搜索并阅读了很多,但无法弄清楚这一点。import numpy as npimport matplotlib.pyplot as pltimport pandas as pdfrom scipy.optimize import curve_fitdef exp_func(x,a,b,c): return a*np.exp(-b*x)+cx = np.array(df_auction_cat['AgeAdj'])y = np.array(df_auction_cat['SP/ABCost'])plt.scatter(x, y, s=50, cmap='Blues', alpha=0.7, edgecolor='gray', linewidth=1)popt, pcov = curve_fit(exp_func, x, y)plt.plot(x, exp_func(x, *popt))在前面的代码中,我处理了一些数据并将 df_auction_cat 数据集放在一起。散布看起来像这样,指数根本不适合:任何帮助将非常感激。数据点如下:AgeAdj SP/ABCost26 0.0518518138 0.34210436328 0.14208173823 0.122 0.05633052719 0.15769230818 0.15730140717 0.1517 0.23669087217 0.17304173714 0.22307692312 0.24729454912 0.24244563610 0.46486486517 0.23333333317 0.25333333310 0.29230769228 0.12655402419 0.32297363414 0.27068498818 0.17456085812 0.20365433523 0.13314488217 0.11907660112 0.38157894717 0.23274781114 0.36546599911 0.57405654119 0.15347196329 0.12802392515 0.16499983528 0.14051344422 0.08977006916 0.1600141215 0.283422611
2 回答

呼唤远方
TA贡献1856条经验 获得超11个赞
我创建了自己的 x、y 并工作,你能发布你的输入数据吗?
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.optimize import curve_fit
def exp_func(x,a,b,c):
return a*np.exp(-b*x)+c
x = np.array(range(0,100))
y = np.array(exp_func(x,0.1,0.1,.1)*50+np.random.rand(100))
plt.scatter(x, y, s=50, cmap='Blues', alpha=0.7, edgecolor='gray', linewidth=1)
popt, pcov = curve_fit(exp_func,x, y)
plt.plot(x, exp_func(x, *popt))
添加回答
举报
0/150
提交
取消