matplotlibプロットの左上隅にテキストを配置する 質問する

matplotlibプロットの左上隅にテキストを配置する 質問する

matplotlib 図の左上 (または右上) 隅、たとえば左上の凡例がある場所にテキストを配置するには、またはプロットの上にある左上隅にテキストを配置するには、どうすればよいでしょうか。たとえばplt.scatter()、 の場合は、散布図の四角形内に収まるものを左上隅に配置します。

たとえば、プロットされる散布図のスケールはデータセットごとに変わるため、理想的にはスケールを知らなくてもこれを実行したいと思います。テキストを大まかに左上または右上に配置したいだけです。凡例タイプの配置では、散布図のポイントと重ならないようにする必要があります。

ベストアンサー1

使用できますtext

plt.text(x, y, s, fontsize=12)

text座標は軸に対して相対的に指定できるため、テキストの位置はプロットのサイズに依存しません。

デフォルトの変換では、テキストがデータ座標にあることを指定しますが、代わりに、軸座標でテキストを指定することもできます (0,0 は左下、1,1 は右上)。次の例では、テキストを軸の中央に配置します。

plt.text(0.5, 0.5, 'matplotlib',
     horizontalalignment='center',
     verticalalignment='center',
     transform = ax.transAxes)

テキストが散布図のどの点にも干渉しないようにするのは、私の知る限りでは困難です。より簡単な方法は、y_axis (ymax in ylim((ymin,ymax))) を、ポイントの最大 y 座標よりも少し高い値に設定することです。こうすることで、テキスト用の空きスペースが常に確保されます。

編集: ここに例があります:

from matplotlib import pyplot as plt

f, ax = plt.subplots()
plt.scatter([3,5,2,6,8],[5,3,2,1,5])
plt.text(.01, .99, 'matplotlib', ha='left', va='top', transform=ax.transAxes)
f.tight_layout()

プロット

およびパラメータhava、挿入ポイントに対するテキストの配置を設定します。つまり、ha='left'フレームを手動で縮小 (狭く) したときに長いテキストが左軸から外れないようにするには、 を設定するのが適切です。

おすすめ記事