はじめに
jupyter notebook, labで対話的な操作ができる機能(ipywidgets)のドロップダウンで画像を選択してカラーバーも同時に表示する方法について説明する。
コード
解説
モジュールのインポートなど
jupyter labでインタラクティブな操作をするには、冒頭で%matplotlib widgetとする。
jupyter lnotebookの場合は%matplotlib notebookとなる。
所定のGUIにより別ウインドウで表示するには、%matplotlibとする。
make_axes_locatableはカラーバーを表示するためにインポートする。
バージョン
画像データの作成
128 x 128のサイズの画像に強度の高い箇所が複数ある画像を作成する。
空のリストであるim_listに画像データをappendでいれることで画像が3つ入ったリストを作成する。
画像の表示
imshowで画像を表示する。
カラーバーの表示
dividerをmake_axes_locatable(ax)として、divider.append_axes(“top”, size=”5%”, pad=0.02)とすることでカラーバーを画像の上に表示できるようにする。
plt.colorbarでcax=caxとすることでcaxの位置にカラーバーを表示し、orientation=’horizontal’で水平なcolorbarとする。
Dropdownの設定
optionsで[(‘image1’, 0), (‘image2’, 1), (‘image3’, 2)]のようにすると、image1を選択したときに0が返される。valueは初期値となる。
@interactでipywidgetsを有効にする。
f(im_dd)はドロップダウンを選択するたびに実行される。
image0などから任意のものを選択すると、imshowで選択した画像を表示する。
画像の切り替えはimgリストの値の更新により行う。
カラーバーはcbar.mappable.set_climで範囲を設定し、cax.xaxis.set_ticks_position(‘top’)でカラーバーの目盛りを上側にする。
コメント