[ipywidgets] 6. RadioButtonsでデータを取得する方向を選択して、IntSliderで画像の任意の位置のデータをラインで表示

ipywidgets

はじめに

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

コード

解説

このコードは下記の投稿のコードに加筆したものとなっている。そのため、変更点のみを解説する。

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

画像に表示する線とデータを表示する線

axhlineでx軸に対して平行なマゼンタの線を表示する。データの線もマゼンタにする。
axvlineでy軸に対して平行な緑の線を表示する。データの線も緑にする。

ipywidgetsの設定

ラジオボタンを設定する。xまたはyを選べるようにする。

directionをxとしたときの処理は、y軸に平行な画像中の線とデータの線を、空のデータを設定することで消す。そして、x軸に平行な線にデータをセットすることで、画像中の線とデータの線を表示する。

else: の処理は、directionをy とした場合になる。前述の処理のxとyを入れ替えた処理となる。

ラジオボタンをyにしたときの図

任意の位置の任意の方向のデータを取得したいときは下記記事で解説したskimageのprofile_lineを用いると良い。

[matplotlib] 62. mpl_connect('button_press_event', onclick)により、画像上でクリックした2点間のプロファイルを表示
matplotlibのbutton_press_eventで取得した座標を用いて、画像上の任意の位置のプロファイルをskimageのprofile_lineで作成し、表示する方法について説明する。
コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

参考

Jupyter Widgets — Jupyter Widgets 8.1.2 documentation

コメント