【Python】凡例の位置を画像座標で指定する
グラフの凡例を画像座標で指定したいときは、下記のように座標変換する。
import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(211) #テストのためにグラフをずらす. fig_posX = 0.5 #画像座標X fig_posY = 0.75 #画像座標Y ax.set_xlim([-10, 20]) #テストのためにx軸座標の範囲を変更。 #データプロット ax.plot(0, 0, color='red', label='1') ax.plot(1, 1, color='blue', label='2') #figの座標からグラフのBBox座標に変換 ax_zahyouX = (fig_posX - ax.axes.get_position().x0) / ax.axes.get_position().width ax_zahyouY = (fig_posY - ax.axes.get_position().y0) / ax.axes.get_position().height print(ax_zahyouX, ax_zahyouY) #凡例を表示 ax.legend(bbox_to_anchor=(ax_zahyouX, ax_zahyouY), loc='upper left') fig.text(fig_posX, fig_posY, 'TEXT') #上の命令と同じ位置に表示される(基点は異なる)。 #グラフ表示 plt.show()
軸タイトルや軸の値を変更してグラフを作ると、グラフの領域がずれることがある。
凡例などの位置を固定したいときはこんな感じでやるしかない?
ほかにもっといいやり方はあるかも。