散布図を作って,作った散布図に関数をフィッティングしたいのですが,曲線が何重にも重なって出力されます.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

散布図