【Python】Matplotlibでグラフに凡例(legend)を表示する方法

  • URLをコピーしました!

今回はグラフに凡例を表示する方法を紹介します。

目次

凡例を表示 : 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講座 icon 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜 icon

他のUdemyの講座が気になる方はこちら

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

エンジニア。20代。組み込みエンジニアとして働き始めるも、働き方や業務内容に限界を感じ、 AI,Web3エンジニアを目指して勉強中。 エンジニアとして思うことや、学んだことを発信します。

目次