[ipywidgets] 23. Dropdownで画像を選択してカラーバーとともに表示

ipywidgets

はじめに

本記事では、Jupyter NotebookやLabで使用できるipywidgetsの機能を活用し、ドロップダウンメニューから画像を選択して、対応するカラーバーと一緒に表示する方法について解説します。対話的な操作で視覚的なデータ分析を効率的に行う方法を学びましょう。

コード

解説

モジュールのインポートなど

Jupyter Labでインタラクティブな操作を行うには、コードの冒頭に「%matplotlib widget」と記述します。
Jupyter Notebookの場合は「%matplotlib notebook」を使用します。
別ウィンドウでGUIを表示したい場合は「%matplotlib」を指定します。また、カラーバーを表示するためには「make_axes_locatable」をインポートする必要があります。

バージョン

画像データの作成

128 × 128のサイズで、強度の高い箇所が複数ある画像を作成します。

空のリスト(im_list)を用意し、そこに画像データをappendで追加することで、3つの画像を含むリストを作成します。

画像の表示

imshowで画像を表示します。

カラーバーの表示

dividerをmake_axes_locatable(ax)で作成し、divider.append_axes(“top”, size=”5%”, pad=0.02)を使うことでカラーバーを画像の上部に表示できます。

plt.colorbarにcax=caxを指定することでカラーバーの位置を設定し、orientation=’horizontal’パラメータで水平方向に表示します。

Dropdownの設定

Dropdownのoptionsパラメータで[(‘image1’, 0), (‘image2’, 1), (‘image3’, 2)]のように設定すると、image1を選択したときに値0が返されます。valueパラメータは初期値を指定します。

@interactを使用してipywidgetsを有効化します。 関数f(im_dd)はドロップダウンが選択されるたびに実行されます。 ドロップダウンから画像を選択すると、imshow関数で対応する画像が表示されます。 画像の切り替えは、imgリストのインデックス参照によって行われます。

カラーバーはcbar.mappable.set_clim関数で表示範囲を設定し、cax.xaxis.set_ticks_position(‘top’)でカラーバーの目盛りを上部に配置します。

image2の場合

image3の場合

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

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

まとめ

ipywidgetsのDropdownウィジェットを使うことで、複数の画像を簡単に切り替えて表示でき、同時にカラーバーも表示することで、データの視覚的な理解を深めることができます。この方法はデータ分析やプレゼンテーションの場面で非常に役立ちます。

参考

Widget List — Jupyter Widgets 8.1.7 documentation
[matplotlib] 40. 等高線、カラーマップにおけるログスケールのカラーバー
matplotlib の等高線図とカラーマップでログスケールのカラーバーを表示する方法を解説。データの広い範囲を効果的に可視化したい場合に適した技術で、LogNorm の使い方や実装例を紹介しています。

コメント