今回はグラフに凡例を表示する方法を紹介します。
凡例を表示 : legend()
グラフに凡例を表示するにはplot.legend()メソッドを使用します。
使い方は以下の通りです。
サンプルデータはsin, cosを用います。

凡例の表示位置変更
凡例の表示位置を変更する方法として、2通り紹介します。
- 文字列で指定する方法
- グラフの外側に表示する方法
文字列で指定: loc
凡例の表示位置を変更するにはlegend()メソッドのlocというパラメータを使用します。
plt.legend(loc='upper right')locで指定する文字列は、以下が一般的に使用されます。
| 文字列 | 配置 |
|---|---|
| best | (デフォルト)最適な配置 |
| upper right | 右上 |
| upper left | 左上 |
| lower left | 左下 |
| lower right | 右下 |
| right | 右 |
| center left | 左中央 |
| center right | 右中央 |
| lower center | 下中央 |
| upper center | 上中央 |
| center | 中央 |
それぞれの位置で凡例を表示してみましょう!
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig, axs = plt.subplots(5, 2, figsize=(9.6, 12.8)) # 5行32列のサブプロットを作成
location=['upper right', 'upper left', 'lower left', 'lower right','right',
'center left', 'center right', 'lower center', 'upper center', 'center']
loc_cnt = 0
for i in range(5):
for j in range(2):
axs[i, j].plot(x, np.sin(x), label='sin(x)')
axs[i, j].plot(x, np.cos(x), label='cos(x)')
axs[i, j].legend(loc=location[loc_cnt])
loc_cnt += 1
plt.show()実行結果

グラフの外側に配置: bbox_to_anchor
凡例をグラフの外側に配置することもできます。
グラフの外側に配置には、bbox_to_anchorというパラメータを使用します。
bbox_to_anchorは、(x, y)形式のタプルで指定します。
locで指定した位置を、x, yで指定した座標に合わせます。
以下は、具体的なイメージです。

サンプルコードは以下の通りです。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(loc='lower left', bbox_to_anchor=(1, 1))実行結果

凡例にタイトル追加: title
凡例にタイトルを追加するには、titleというパラメータを使用します。
titleは簡単です。サンプルコードは以下の通りです。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(title='Title')
plt.show()実行結果

凡例のフォントサイズ変更: fontsize
凡例のフォントサイズを変更するには、fontsizeを使用します。
さっそくサンプルコードを見てみましょう!
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(fontsize=14)
plt.show()実行結果

いままで出力したグラフの凡例よりもフォントサイズが大きくなっていることがわかります!
凡例の行数変更: ncol
凡例の行数を変更するには、ncolを使用します。
ncolに列数を指定します。グラフの余白スペースを有用に使用できます。
サンプルコードは以下の通りです。
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label='sin(x)')
plt.plot(x, np.cos(x), label='cos(x)')
plt.legend(ncol=2, loc='lower left')
plt.show()実行結果

凡例の要素数分ncolに指定することで、凡例を1行で表示できました
まとめ
legend()メソッドを使用してグラフに凡例を表示する方法を紹介しました。
legend()メソッドは、グラフをわかりやすくし、可視化の品質を向上させるために重要な機能です。
凡例を適切に配置することで、グラフの理解が容易になります。
ここまで読んでいただき、ありがとうございます!
参考
おすすめ教材
米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座他のUdemyの講座が気になる方はこちら



