はじめに
この実験では、Matplotlib のキー入力イベントに接続する方法を学びます。これにより、キーが押されたときに特定のアクションを実行できます。グラフを作成し、「x」キーが押されたときに x 軸のラベルの表示を切り替えるキー入力イベントリスナーを設定します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
必要なライブラリをインポートして始めます。matplotlib.pyplot と numpy です。
import matplotlib.pyplot as plt
import numpy as np
キー入力イベント関数の定義
次に、キーが押されたときに呼び出される on_press 関数を定義します。この関数は、押されたキーに関する情報を含む event パラメータを受け取ります。この例では、「x」キーが押されたときに x 軸のラベルの表示を切り替えます。
def on_press(event):
print('press', event.key)
sys.stdout.flush()
if event.key == 'x':
visible = xl.get_visible()
xl.set_visible(not visible)
fig.canvas.draw()
グラフを作成してキー入力イベントリスナーを接続する
np.random.rand() を使ってランダムなデータを生成し、簡単なグラフを作成します。そして、fig.canvas.mpl_connect() を使ってキー入力イベントリスナーを設定し、リッスンするイベントの名前 ('key_press_event') とイベントが発生したときに呼び出す関数 (on_press) を渡します。
fig, ax = plt.subplots()
fig.canvas.mpl_connect('key_press_event', on_press)
ax.plot(np.random.rand(12), np.random.rand(12), 'go')
xl = ax.set_xlabel('easy come, easy go')
ax.set_title('Press a key')
plt.show()
コードを実行する
コードをファイルに保存し、Python 環境で実行します。x 軸のラベルが「easy come, easy go」と表示されたグラフが表示されます。「x」キーを押すと、x 軸のラベルが表示と非表示の間で切り替わります。
まとめ
この実験では、Matplotlib でキー入力イベントに接続する方法を学びました。グラフを作成し、「x」キーが押されたときに x 軸のラベルの表示を切り替えるキー入力イベントリスナーを設定しました。これは、Matplotlib のキー入力イベントを使って行えることの一例にすぎません。