すべての記事

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

広告この記事には広告・アフィリエイトリンクが含まれる場合があります。

目次

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

凡例を表示 : 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()メソッドは、グラフをわかりやすくし、可視化の品質を向上させるために重要な機能です。

凡例を適切に配置することで、グラフの理解が容易になります。

ここまで読んでいただき、ありがとうございます!

参考

おすすめ教材

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

コメント

コメントはまだありません