はじめに
Matplotlib は Python 用のデータ可視化ライブラリです。Python で静的、アニメーション、インタラクティブな可視化を作成するためのさまざまなツールを提供します。Matplotlib のインタラクティブ機能の 1 つは、マウスが図または軸に入ったり離れたりするときを検出する機能です。この実験では、Matplotlib の Figure と Axes の入力/出力イベントを使用して、図と軸の枠の色を変更する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
Matplotlib のインポート
Matplotlib を使用し始める前に、インポートする必要があります。また、グラフを作成するためのシンプルなインターフェイスを提供する pyplot モジュールもインポートします。
import matplotlib.pyplot as plt
図と軸の作成
subplots関数を使って、2 つのサブプロット(軸)付きの図を作成します。また、図のタイトルも設定します。
fig, axs = plt.subplots(2, 1)
fig.suptitle('Mouse Hover Over Figure or Axes to Trigger Events')
イベントハンドラの定義
ここでは、4 つのイベントハンドラ関数を定義します。on_enter_axes、on_leave_axes、on_enter_figure、およびon_leave_figure。これらの関数は、マウスが軸または図に入ったり離れたりするときに呼び出されます。
def on_enter_axes(event):
print('enter_axes', event.inaxes)
event.inaxes.patch.set_facecolor('yellow')
event.canvas.draw()
def on_leave_axes(event):
print('leave_axes', event.inaxes)
event.inaxes.patch.set_facecolor('white')
event.canvas.draw()
def on_enter_figure(event):
print('enter_figure', event.canvas.figure)
event.canvas.figure.patch.set_facecolor('red')
event.canvas.draw()
def on_leave_figure(event):
print('leave_figure', event.canvas.figure)
event.canvas.figure.patch.set_facecolor('grey')
event.canvas.draw()
イベントハンドラを図のキャンバスに接続する
ここでは、mpl_connectメソッドを使ってイベントハンドラを図のキャンバスに接続します。これにより、マウスが図または軸に入ったり離れたりするときにイベントハンドラがトリガーされるようになります。
fig.canvas.mpl_connect('figure_enter_event', on_enter_figure)
fig.canvas.mpl_connect('figure_leave_event', on_leave_figure)
fig.canvas.mpl_connect('axes_enter_event', on_enter_axes)
fig.canvas.mpl_connect('axes_leave_event', on_leave_axes)
図の表示
ここでは、show関数を使って図を表示します。
plt.show()
まとめ
この実験では、Matplotlib の図と軸の入力/離脱イベントを使って、図と軸の枠の色を変更する方法を学びました。2 つのサブプロット付きの図を作成し、図と軸への入力と離脱に対するイベントハンドラ関数を定義し、イベントハンドラを図のキャンバスに接続し、そして図を表示しました。