matplotlib
座標系
サーチ…
備考
Matplotlibには4つの異なる座標系があり、異なるオブジェクト(テキストなど)の配置を容易にすることができます。各システムは、対応する変換オブジェクトを有し、その変換オブジェクトは、そのシステムからの座標をいわゆる表示座標系に変換する。
データ座標系は、各軸のデータによって定義されるシステムです。プロットされたデータに相対的なオブジェクトを配置しようとするときに便利です。範囲はAxes
xlim
とylim
プロパティによって与えられます。対応する変換オブジェクトはax.transData
です。
Axes座標系はAxes
オブジェクトに結び付けられたシステムです。点(0、0)と(1,1)は、軸の左下と右上隅を定義します。このように、プロットの上中央のように、軸を基準にして配置するときに便利です。対応する変換オブジェクトはax.transAxes
です。
図座標系は図に結びつけられている点を除いて軸座標系に類似していFigure
。点(0、0)と(1,1)は図の左下と右上のコーナーを表します。画像全体に対して何かを配置しようとするときに便利です。対応する変換オブジェクトはfig.transFigure
です。
表示座標系はピクセルで与えられた画像のシステムです。点(0、0)と(幅、高さ)は、画像またはディスプレイの左下および右上のピクセルです。これは、絶対的な位置決めに使用できます。変換オブジェクトは座標をこの座標系に変換するので、表示システムには変換オブジェクトが関連付けられていません。ただし、必要に応じてNone
またはmatplotlib.transforms.IdentityTransform()
を使用できます。
座標系とテキスト
Matplotlibの座標系は、作成したプロットに注釈を付けるときに非常に便利です。特定のポイントにラベルを付けるときなど、データを相対的に配置することがあります。他の時代には、図の上にテキストを追加したいかもしれません。これは、 text()
呼び出しで変換オブジェクトをtransform
パラメータに渡すことによって、適切な座標系を選択することで簡単に実現できます。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([2.], [3.], 'bo')
plt.text( # position text relative to data
2., 3., 'important point', # x, y, text,
ha='center', va='bottom', # text alignment,
transform=ax.transData # coordinate system transformation
)
plt.text( # position text relative to Axes
1.0, 1.0, 'axes corner',
ha='right', va='top',
transform=ax.transAxes
)
plt.text( # position text relative to Figure
0.0, 1.0, 'figure corner',
ha='left', va='top',
transform=fig.transFigure
)
plt.text( # position text absolutely at specific pixel on image
200, 300, 'pixel (200, 300)',
ha='center', va='center',
transform=None
)
plt.show()