[ipywidgets] 20. IntProgressでプログレスバーを表示する方法

ipywidgets

はじめに

Jupyter NotebookやJupyter Labでは、長時間かかる処理の進捗状況を視覚的に表示することが重要です。ipywidgetsライブラリのIntProgressウィジェットを使用すると、シンプルで直感的なプログレスバーを実装できます。

コード

解説

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

このコードはJupyter Lab 2.0.1で実行しました。Jupyter Labでインタラクティブな操作を行うに、%matplotlib widgetを設定します。

動画の読み込みとメタデータ

下記記事の動画を読み込み、メタデータを表示します。これにより、フレーム数が300であることが確認できます。

[matplotlib animation] 75. テンプレートマッチングによる物体追跡でジャンプした回数を計測
scikit-imageのテンプレートマッチングによる物体追跡により、対象物がジャンプした回数を動画解析し、matplotlib, FuncAnimationのアニメーションで表示する。

ipywidgetsの設定

IntProgressを使用してプログレスバーを表示します。minからmaxの値に応じてバーの長さが動的に変化し、処理の進行状況を視覚的に表現します。

IntProgressの主なパラメータ

パラメータ説明選択肢/型
value現在の値整数
min最小値整数
max最大値整数
description表示するラベル文字列
bar_styleバーのスタイル‘success’, ‘info’, ‘warning’, ‘danger’, ”
orientationバーの向き‘horizontal’, ‘vertical’
layoutレイアウト設定Layout()

動画から画像への変換の実行とプログレスバー

画像をひとつリストに追加するたびにプログレスバーの値を1ずつ増加させることで、処理の進行状況をリアルタイムに確認できます。

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

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

まとめ

ipywidgetsのIntProgressを使用することで、Jupyter環境での長時間処理の進捗状況を視覚的に表示できます。これにより、ユーザーは処理の完了を待つ間も状況を把握できるため、特に大規模なデータ処理や長時間の計算処理に非常に有用です。

プログレスバーはシンプルながらも、ユーザビリティを大きく向上させる機能です。他のipywidgetsと組み合わせることで、より対話的で情報量の多いインターフェースを構築することができます。

参考

Widget List — Jupyter Widgets 8.1.7 documentation

コメント