scipyでの関数フィッティング
散布図を作って,作った散布図に関数をフィッティングしたいのですが,曲線が何重にも重なって出力されます.array_xとarray_yの値が単調増加していないことが関係しているのでしょうか?
以下のコードで間違っているところを教えてください.
array_x=np.array(dataframe["data1"])
array_y=np.array(dataframe["data2"])
#点をプロット
fig=plt.figure()
ax=fig.add_subplot(111)
ax.scatter(array_x,array_y)
# 関数フィッティング
def linear_fit(x, a, b,c):
return a*x**2 + b*x+c
param, cov = curve_fit(linear_fit, array_x,array_y)
array_y2 = param[0] * (array_x)**2 + param[1]*(array_x)+param[2]
ax.plot(array_x, array_y2,color='black')
plt.show