はじめに
この実験では、transforms.offset_copy を使用して、任意の座標で指定された場所に対して画面座標における指定されたオフセットで、文字列などの描画要素を配置する方法を学びます。Python の Matplotlib ライブラリを使用して散布図と極座標グラフを作成し、その後 offset_copy を使用して各グラフにテキストを追加します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使用して練習します。
時々、Jupyter Notebook が読み込み完了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
必要なライブラリをインポートして始めましょう:numpy と matplotlib.pyplot。
import numpy as np
import matplotlib.pyplot as plt
データの作成
次に、グラフに使用するデータを作成します。散布図の x 座標と y 座標として使用する xs と ys の 2 つの配列を作成するために numpy を使用します。
xs = np.arange(7)
ys = xs**2
散布図の作成
ここでは、matplotlib.pyplot の plot 関数を使用して散布図を作成します。
fig = plt.figure(figsize=(5, 10))
ax = plt.subplot(2, 1, 1)
## Plot the data
for x, y in zip(xs, ys):
plt.plot(x, y, 'ro')
散布図にテキストを追加する
ここでは、offset_copy を使用して散布図にテキストを追加します。まず、任意の座標で指定された場所に対して画面座標における指定されたオフセットでテキストを配置する変換を作成します。その後、matplotlib.pyplot の text 関数を使用してグラフにテキストを追加します。
## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
x=0.05, y=0.10, units='inches')
## Add text to the plot
for x, y in zip(xs, ys):
plt.text(x, y, '%d, %d' % (int(x), int(y)), transform=trans_offset)
極座標グラフの作成
ここでは、matplotlib.pyplot の polar 関数を使用して極座標グラフを作成します。
ax = plt.subplot(2, 1, 2, projection='polar')
## Plot the data
for x, y in zip(xs, ys):
plt.polar(x, y, 'ro')
極座標グラフにテキストを追加する
最後に、offset_copy と matplotlib.pyplot の text 関数を使用して極座標グラフにテキストを追加します。
## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
y=6, units='dots')
## Add text to the plot
for x, y in zip(xs, ys):
plt.text(x, y, '%d, %d' % (int(x), int(y)),
transform=trans_offset,
horizontalalignment='center',
verticalalignment='bottom')
まとめ
この実験では、transforms.offset_copy を使用して、任意の座標で指定された場所に対して画面座標における指定されたオフセットで描画要素を配置する方法を学びました。この関数を使用して、Python の matplotlib.pyplot ライブラリを使って作成した散布図と極座標グラフにテキストを追加しました。