はじめに
Jupyter NotebookにはRadioButtonsなどの対話的なウィジェットが用意されています。この記事では、SciPyのinterp1dを使った補間方法をRadioButtonsで選択し、動的に結果を変更する方法を解説します。
コード

解説
モジュールのインポート
データの生成
np.linspace()を使用して、0から20までを11等分した配列を生成します。また、np.random.rand()を用いて、0から1の範囲のランダムな値を持つ11個の要素からなる配列を生成します。
図の表示
空のプロット(l, =ax.plot([], [], ‘c-‘, zorder=1))を事前に作成しておくことで、ipywidgetsで調整した補間データを後から挿入できるようにします。
ipywidgetsの設定
IntSliderは整数を選択できるスライダーであり、RadioButtonsはリスト内の任意の要素を選択できるラジオボタンです。それぞれの補間方法は以下の通りです。
‘linear’ | 線形補間 |
‘nearest’ | 最近傍点 |
‘zero’ | 0 次スプライン補間 |
‘slinear’ | 1 次スプライン補間 |
‘quadratic’ | 2 次スプライン補間 |
‘cubic’ | 3 次スプライン補間 |
‘previous’ | 直前の要素の値 |
‘next’ | 直後の要素の値 |
Pythonのデコレータ構文「@」を使うことで、コードをより簡潔に記述できます。
このとき、numはIntSliderで選択する値、kindはRadioButtonsで選択するリスト内の補間方法を表します。
xxでは補間範囲のデータポイント数を調整し、f2ではRadioButtonsで選択した補間方法を用いて補間関数を生成します。
最後に、データxxを補間関数f2に適用し、結果をプロットします。
ラジオボタンで補間方法を変化させたときの図
“nearest”

“quadratic”

“previous”

補間方法をかえることで補間曲線が変化していることがわかる。

なお、IntSliderは整数部分をクリックすることで直接入力が可能です。
コードをダウンロード(.py) コードをダウンロード(.ipynb)まとめ
ipywidgetsのRadioButtonsを使うことで、補間方法をインタラクティブに切り替えることができます。これにより、データ分析や可視化において、異なる補間アルゴリズムの効果を即座に比較検討することが可能になります。
参考

コメント