[ipywidgets] 3. RadioButtonsで任意の補間方法を選択する

ipywidgets

はじめに

jupyter notebookでは対話的にパラメータを調整できる機能(ipywidgets)がある。ここでは、その機能の一つであるRadioButtonsを使って、Scipyのinterpolate interp1dの補間方法を選択する方法について説明する。

コード

解説

モジュールのインポート

データの生成

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はラジオボタンで選択するリスト内の補間方法となる。
xxで補間範囲のデータポイント数を調整し、f2でラジオボタンで選択した補間方法で補間関数を作成する。
データxxを補間関数f2に適用してプロットする。

ラジオボタンで補間方法を変化させたときの図

“nearest”

“quadratic”

“previous”

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

なお、IntSliderは整数部分をクリックすることで直接入力が可能となる。

コードをダウンロード(.py)

コードをダウンロード(.ipynb)

参考

scipy.interpolate.interp1d — SciPy v1.12.0 Manual
404 Not Found
Scipyのinterpolateで欠損しているデータを補間する - Qiita
はじめにデータを取得したセンサの仕様などによって、本当は連続値であるものを離散値で計測する場合があります。例えば、センサのクロック周波数の仕様や、ストレージの容量節約のために測定を2秒おきにすると…

コメント