Edited at

matplotlib の legend(凡例) の 位置を調整する legend bbox_to_anchor loc

凡例を表示するplt.legendには3つのパラメータがあります.

- bbox_to_anchor

- loc

- borderaxespad

bbox_to_anchorでは, 凡例の枠の, 図全体に対する相対的な位置を決定します。 図全体の左下を(0, 0), 右上を(1, 1)としたタプルで与えます。この位置のことをアンカーと呼ぶことにします。

locでは、アンカー(bbox_to_anchorで指定した位置)に, 凡例の枠のどの部分を合わせるかを決定します。loc='upper left'ではアンカーに枠の左上を合わせ、loc='center'では中心を合わせるなどの設定ができます。

borderaxespadでは、アンカーと、locで指定した枠の部分の間の距離を設定することができます。


import numpy as np

import matplotlib.pyplot as plt
%matplotlib inline

x = np.arange(0, 10, 0.1)
s = np.sin(x)
c = np.cos(x)
plt.plot(x, s, "r", label="sin")
plt.plot(x, c, "k", label="cos")


アンカーを右上にして、凡例枠の右上をアンカーに合わせる。余白をあけない。

plt.legend(bbox_to_anchor=(1, 1), loc='upper right', borderaxespad=0, fontsize=18)


アンカーを右上にして、凡例枠の右上をアンカーに合わせる。余白をあける。

plt.legend(bbox_to_anchor=(1, 1), loc='upper right', borderaxespad=1, fontsize=18)


アンカーを右下にして、凡例枠の右下をアンカーに合わせる。余白をあける。

plt.legend(bbox_to_anchor=(1, 0), loc='lower right', borderaxespad=1, fontsize=18)


アンカーを外の左下にして、凡例枠の左上をアンカーに合わせる。

plt.legend(bbox_to_anchor=(0, -0.1), loc='upper left', borderaxespad=0, fontsize=18)


アンカーを外の右上にして、凡例枠の左上をアンカーに合わせる。

plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0, fontsize=18)


locの候補

‘best’

‘upper right’

‘upper left’

‘lower left’

‘lower right’

‘right’

‘center left’

‘center right’

‘lower center’

‘upper center’

‘center’