はじめに
この実験では、Python プログラミング言語用のグラフ描画ライブラリである Matplotlib を使って、マウスポインタに近いプロット点を表示するテキストボックス付きのデータカーソルを作成する方法を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習します。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
まず、Matplotlib と NumPy のライブラリをインポートします。NumPy は、Python における科学技術計算の基本パッケージであり、Matplotlib は、出版品に相当する品質のグラフを生成するグラフ描画ライブラリです。
import matplotlib.pyplot as plt
import numpy as np
グラフを作成する
NumPy の linspace 関数を使って、x の値を -5 から 5 までの間で 1000 個生成し、その後 y を x の二乗として計算することで、放物線の簡単なグラフを作成します。
fig, ax = plt.subplots(figsize=(8, 6))
ax.set_title("Cursor Tracking x Position")
x = np.linspace(-5, 5, 1000)
y = x**2
line, = ax.plot(x, y)
ax.set_xlim(-5, 5)
ax.set_ylim(0, 25)
AnnotatedCursor クラスを作成する
matplotlib.widgets.Cursor から継承した新しいクラス AnnotatedCursor を作成し、新しいウィジェットの作成とそれらのイベントコールバックの実装を示します。AnnotatedCursor クラスは、現在の座標を表示するテキスト付きの十字マーカーカーソルを作成するために使用されます。
class AnnotatedCursor(Cursor):
"""
A crosshair cursor like `~matplotlib.widgets.Cursor` with a text showing \
the current coordinates.
...
"""
AnnotatedCursor オブジェクトを初期化する
グラフの線 line を AnnotatedCursor のコンストラクタに渡すことで、AnnotatedCursor オブジェクトを初期化します。
cursor = AnnotatedCursor(line=line, ax=ax, useblit=True)
グラフを表示する
Matplotlib の pyplot モジュールの show() メソッドを使ってグラフを表示します。
plt.show()
まとめ
この実験では、Matplotlib を使ってマウスポインタに近いグラフの点を表示するテキストボックス付きのデータカーソルを作成する方法を学びました。放物線の簡単なグラフを作成し、その後 AnnotatedCursor オブジェクトを作成してグラフを表示しました。