我正在尝试使用matplotlib拟合散点图中的平均线。我得到的就是这个。
但我希望它像这样的绿线
我尝试了以下两个片段来拟合曲线:
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r-")
和
def func(x, a, b, c):
return a * np.exp(-b * x) + c
popt, pcov = curve_fit(func, x, residual)
plt.plot(x, func(x, *popt), 'r-', label='fit')
答案 0 :(得分:1)
由于您没有提供数据,因此我自己创建了数据,我已经尝试过:
N = 10000
xr = np.linspace(-1,6,N)
yr = -1*(np.ones(N)-1+xr) + 10*np.random.rand(N)
x = np.concatenate((xr[0:3800],xr[4900:]))
y = np.concatenate((yr[0:3800],yr[4900:]))
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r-")
plt.scatter(x,y, s=2)
plt.show()
```
这是我的输出,这是预期的输出:
如果您可以共享一部分数据,我也可以对其进行测试。