PROGRAM PYTHON

matplotlib超入門【第3回 凡例表示】

 

 

matplotlibでグラフに凡例を表示しよう

前回はmatplotlibのグラフにタイトルを表示しました。
今回はmatplotlibのグラフに凡例を表示してみましょう。
matplotlibのグラフに凡例を表示するには、legend()関数を使います。
legend()関数には、呼び出し方法がいくつかあります。

 

凡例を表示する簡単なプログラム

以下の例は、一番簡単な凡例の表示方法です。
plot()関数でlabelを設定して、legend()関数を引数なしで呼び出しています。


plt.plot([1, 2, 3], label='Sample Legend')
plt.legend()

簡単なプログラムを作って、凡例を表示してみましょう。

プログラムを実行すると、以下のように凡例が表示されます。

plt3-1

 

既存のプロット要素にラベルを付ける

plot()関数ではlabelを設定しないで、legend()関数側でlabelを設定することができます。
凡例の表示は、上記と全く同じになります。


plt.plot([1, 2, 3])
plt.legend(['Sample Legend'])

 

凡例の要素を明示的に定義する

プロットが複数ある場合、どのプロットがどの凡例を使うかを完全に制御するには、以下のように指定します。


line1, = plt.plot([1, 2, 3])
line2, = plt.plot([2, 4, 8])
plt.legend((line1,line2), ('Sample Legend1','Sample Legend2'))

表示例は、以下の通りです。

plt3-2

 

凡例の表示位置を指定する

凡例を表示する位置を指定することもできます。
legend()関数のlocオプションを使って直接位置を指定するパターンと、凡例にアンカーを設定して位置を指定するパターンがあります。

 

凡例の位置をlocオプションを使用して指定する

凡例はデフォルトで、他のアイテムに重ならないような場所に自動で表示されますが、legend()関数のlocオプションを使うと、凡例の位置を固定することができます。

plt.legend(loc=文字列 or 番号)


plt.legend(loc='upper left')
または
plt.legend(loc=2)

locオプションの値は、以下の通りです。
locオプションは、文字列または番号で指定します。

位置文字列 位置番号 内容
'best' 0 最適(極力重ならない位置)。デフォルト
'upper right' 1 右上
'upper left' 2 左上
'lower left' 3 左下
'lower right' 4 右下
'right' 5 右中央。下位互換用
'center left' 6 左中央
'center right' 7 右中央
'lower center' 8 下中央
'upper center' 9 上中央
'center' 10 画面中央

凡例の位置は、以下のようになります。

plt3-3

 

凡例の位置をアンカーを使って指定する

locオプションとbbox_to_anchorオプションを組み合わせて、凡例をグラフの外に表示することもできます。
bbox_to_anchorオプションで指定する座標は、locオプションで指定したアンカーの位置を基準に、左下を(0, 0)、右上を(1,1)とします。

plt.legend(loc=文字列 or 番号, bbox_to_anchor=(X座標, Y座標))

アンカーの位置は、以下のようになります。

plt3-4

例えば、凡例をグラフ外の左上に表示したい場合は、以下のようになります。
凡例のアンカーの位置を左下(lower left)にして、凡例の位置をグラフの最上部(Y座標を1)にしています。


plt.legend(loc='lower left', bbox_to_anchor=(0, 1))

表示例は、以下の通りです。

plt3-5

 

 

-PROGRAM, PYTHON
-