[ipywidgets] 5. IntSliderで画像の任意の位置の横方向データをラインで表示

ipywidgets

はじめに

jupyter notebookの対話的にパラメータを調整できる機能(ipywidgets IntSlider)で画像中の任意の位置の横方向データを線で表示する方法について説明する。

コード

コードをダウンロード

解説

モジュールのインポート

データの生成

図の表示

ax1に画像、ax2にラインを表示する。
axhlineでx軸に対して平行な線を表示する。
後ほどinteractでデータをセットするので、 ax2.plot([],[])のように空プロットしておく。

カラーバーを画像上に表示

make_axes_locatableで画像と同じサイズのカラーバーが作成できる。
orientation=’horizontal’で水平方向のカラーバーとなる。
cax.xaxis.set_ticks_position(‘top’)で目盛りが上側となる。
make_axes_locatableについては下記で解説した。

[matplotlibの使い方] 18. カラーバーを図にあわせる
疑似カラーマップのカラーバーを図にあわせて表示

ipywidgetsの設定

IntSliderは整数を選択できるスライダーとなる。下限値と上限値を設定する。

Pythonのデコレータ構文@を使うことで簡潔に記述できる。
numはIntSlider で選択する値となる。
選択したnumの位置で画像上にラインを引き、その部分のデータを右図に表示する。

スライダーで位置を変化させたときの図

参考

ipywidgets — Jupyter Widgets 7.5.1 documentation
にほんブログ村 IT技術ブログ Pythonへ
にほんブログ村 IT技術ブログへ

コメント