質問: param[0] * (array_x)**2 + param[1]*(array_x)+param[2] ax.plot(array_x, array_y2,color='black') plt.show ``` ![散布図](https://i.stack.imgur.com/PgWWG.png)
回答: `ax.plot(array_x, array_y2,color='black')`はarray_xの順番で点を打ち、その間を直線で結んでいきます。なので、曲線が何重にもなっているのではなく、array_xの並びに合わせて左右に行ったり来たりしながら描画されています。 ※curve_fit自体は、array_xが単調増加か否かは関係ないです。あくまで描画の問題です。 簡単な解決策としては、array_xを単調増加に並び替えたarray_x2を使って、array_y2を作ります。