Matplotlibは、Pythonでグラフを描画するためのライブラリで、その中にはウィジェットというGUIツールが含まれています。ウィジェットは、ユーザーとのインタラクションを可能にするためのツールで、例えばスライダーやボタンなどがあります。
Matplotlibのウィジェット
Matplotlibのウィジェットは、GUIに依存しない設計がされており、あらかじめ定義されたAxesインスタンスを最初のパラメータとして受け取ります。ウィジェットは、AxesWidgetというクラスを基にしており、このクラスはウィジェットが接続される単一のAxesを保持します。
ウィジェットが反応し続けるためには、ユーザーがウィジェットオブジェクトへの参照を保持しておく必要があります。これは、コールバックレジストリが関数への弱参照しか保持していないため、ウィジェットオブジェクトへの参照がなければガベージコレクションされてしまい、コールバックが切断されてしまうからです。
ウィジェットの種類
Matplotlibには、様々な種類のウィジェットが用意されています。以下にいくつかの例を挙げます。
-
Button: GUIに依存しないボタンです。ボタンが反応し続けるためには、ユーザーがボタンへの参照を保持しておく必要があります。ボタンクリックイベントに関数を接続するためには、
on_clicked
メソッドを呼び出します。 -
CheckButtons: GUIに依存しないチェックボタンのセットです。チェックボタンが反応し続けるためには、ユーザーがこのオブジェクトへの参照を保持しておく必要があります。
on_clicked
メソッドを用いてCheckButtonsに接続します。
これらのウィジェットを使用することで、PythonとMatplotlibを用いたインタラクティブなグラフ作成が可能となります。.