はじめに
Matplotlib は、Python におけるデータ可視化に使用されるライブラリです。これは、さまざまな種類のプロット、グラフ、チャートを作成するための幅広いツールを提供します。Matplotlib の便利な機能の 1 つは、座標フォーマッタをカスタマイズする機能です。この実験では、Matplotlib の座標フォーマッタを変更して、与えられた x と y に対して最も近いピクセルの画像「z」値を報告する手順を学びます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なモジュールをインポートする
まず、必要なモジュールをインポートする必要があります。この場合、matplotlib.pyplot と numpy をインポートします。
import matplotlib.pyplot as plt
import numpy as np
ランダムな行列を作成する
次に、numpy を使ってランダムな行列を作成します。0 から 1 の間のランダムな値を持つ 5x3 の行列を作成するために、rand メソッドを使います。また、結果の再現性を保証するために、ランダムシードを設定します。
## Fixing random state for reproducibility
np.random.seed(19680801)
X = 10*np.random.rand(5, 3)
プロットを作成する
次に、Matplotlib の axes クラスの imshow メソッドを使って、行列のプロットを作成します。
fig, ax = plt.subplots()
ax.imshow(X)
座標フォーマッタを変更する
次に、座標フォーマッタを変更して、与えられた x と y に対して最も近いピクセルの画像「z」値を報告します。これは、~.axes.Axes.format_coord 関数をカスタマイズすることで達成できます。
def format_coord(x, y):
col = round(x)
row = round(y)
nrows, ncols = X.shape
if 0 <= col < ncols and 0 <= row < nrows:
z = X[row, col]
return f'x={x:1.4f}, y={y:1.4f}, z={z:1.4f}'
else:
return f'x={x:1.4f}, y={y:1.4f}'
ax.format_coord = format_coord
プロットを表示する
最後に、plt.show() メソッドを使ってプロットを表示します。
plt.show()
まとめ
この実験では、Matplotlib の座標フォーマッタを変更して、与えられた x と y に対して最も近いピクセルの画像「z」値を報告する方法を学びました。また、imshow メソッドを使ってランダムな行列のプロットを作成し、座標フォーマッタを変更するために ~.axes.Axes.format_coord 関数をカスタマイズする方法も学びました。