

pythonで
以下のデータをすべてのデータプロット上を通る線で平滑化（近似）？したいのですが何かいい方法ご存じではないですか？webでも自分なりに調べてみましたがこれといった方法が見つかりませんでした．

x軸 y軸  
0 92  
6 105  
11 114  
20 125  
30 148  
40 141


CC BY-SA 4.0
2020-11-13T07:08:29.083
71920
2022-12-14T02:09:26.063
42568
question
python
データプロット上を通る平滑化・近似


スプライン補間するのはいかがでしょうか

【コード例】

[code]

    import numpy as np
    from scipy import interpolate
    import matplotlib.pyplot as plt
    def spline1(x,y,point):
        f = interpolate.interp1d(x, y,kind="cubic") 
        X = np.linspace(x[0],x[-1],num=point,endpoint=True)
        Y = f(X)
        return X,Y
    
    x = [0, 6, 11, 20, 30, 40]
    y = [92, 105, 114, 125, 148, 141]
    a1,b1 = spline1(x,y,1000)
    plt.plot(x, y, 'ro',label="point")
    plt.plot(a1,b1,label="interp1d")
    plt.title("spline")
    plt.xlim([-5, 45])
    plt.ylim([80, 160])
    plt.legend(loc='lower right')
    plt.grid(which='major',color='black',linestyle='-')
    plt.grid(which='minor',color='black',linestyle='-')
    plt.show()
    
[/code]

【実行結果】  
[![実行結果](https://i.stack.imgur.com/W1mWn.png)](https://i.stack.imgur.com/W1mWn.png)

以下のページを参考にしました。ほとんど丸写しです。  
[pythonでxy座標上の離散点をスプライン補間](https://qiita.com/Ken227/items/aee6c82ec6bab92e6abf)


CC BY-SA 4.0
2020-12-26T07:32:32.287
72902
2020-12-27T14:10:39.890
2020-12-27T14:10:39.890
35558
35558
71920
answer