

以下のコードで3次スプライン補完のグラフを書きました．そこでx=3のときのyの値を表示させるにはどのようなコードを書けばいいかまったくわかりません．ご教授お願いします．

[code]

    import pandas as pd
    from scipy.interpolate import interp1d
    import numpy as np
    import matplotlib.pyplot as plt
    
    x=np.array([0, 6, 11 , 20, 30, 40])  #測定時間
    y=np.array([92, 105, 114 , 125, 148, 141])  #血糖値データ
    
    
    f_line = interp1d(x, y)
    f_CS = interp1d(x, y, kind='cubic')
    
    #for plot
    xnew =np.linspace(0, 40, num=50)
    plt.plot(x, y, 'o')
    plt.plot(xnew, f_CS(xnew), '-')
    
    plt.legend(['Raw data','Lagrange', 'Cubic spline'], loc='best')
    plt.show()
    
    print(y)
    
[/code]


CC BY-SA 4.0
2020-11-18T07:12:24.583
72031
2020-11-18T15:34:40.180
42568
question
python
近似・平滑化曲線・3次スプライン補完のx=〇のときのyの値


例えば以下のようにすれば出来るでしょう。  
表示関連の部分だけ抜粋してみました。

[code]

    #for plot
    xnew =np.linspace(0, 40, num=50)
    plt.plot(x, y, 'o')
    plt.plot(xnew, f_CS(xnew), '-')
    plt.plot(3.0, f_CS(3.0), 'X')   #### X =  3 の時の値をグラフ上にプロット
    plt.plot(15.0, f_CS(15.0), '*') #### ついでに X = 15 の時の値をグラフ上にプロット
    
    #### legend に追加した点の内容を追記
    plt.legend(['Raw data','Lagrange', f'X=3, Y={f_CS(3.0):.2f}', f'X=15, Y={f_CS(15.0):.2f}'], loc='best')
    plt.show()
    
    print('X =  3 の時の Yの値 = ', str(f_CS(3.0)))  #### 値をテキストで表示、必要なら何かに代入して使う
    print('X = 15 の時の Yの値 = ', str(f_CS(15.0)))
    
[/code]

グラフはこんな結果になります。  
[![graph](https://i.stack.imgur.com/pVcMx.png)](https://i.stack.imgur.com/pVcMx.png)


CC BY-SA 4.0
2020-11-18T15:34:40.180
72040
2020-11-18T15:34:40.180
26370
72031
answer