はじめに
本記事では、matplotlibライブラリを使用してグラフの凡例を表示する方法について詳しく解説します。凡例の基本的な追加方法から、位置の調整、スタイルのカスタマイズ、複数凡例の配置など、データ可視化をより効果的に行うためのテクニックを紹介します。
解説
モジュールのインポート
データの生成
グラフに凡例を表示

ax.plot()で、labelを設定し、ax.legend()を呼び出すと凡例が表示されます。
一部のplotの凡例を非表示にする

labelを設定しない場合や、label=”と空文字を指定すると、その要素は凡例に表示されません。
凡例の位置の設定

ax.legend()の引数で位置を調整できます。例えばloc=’lower left’とすると、凡例はグラフの左下に配置されます。その他の位置オプションには’best’, ‘upper right’, ‘upper left’, ‘lower left’, ‘lower right’, ‘right’, ‘center left’, ‘center right’, ‘lower center’, ‘upper center’, ‘center’があります。また、frameon=Falseを指定すると凡例の枠線を非表示にできます。
凡例を枠外に表示

loc=’lower left’, bbox_to_anchor=(1., 0.8)を指定すると、凡例ボックスの左下がグラフの相対位置(1,0.8)に配置され、グラフの枠外に凡例を表示できます。
凡例を3列で表示

ax.legend()で ncolパラメータを設定することで、凡例の列数を調整できます。
凡例の幅を広げる

mode=’expand’を指定すると、凡例の幅がグラフの幅いっぱいに拡大します。
凡例を分けて表示する

基本的に一つのグラフには一つの凡例しか表示できませんが、複数の凡例を表示するには、from matplotlib.legend import Legendでインポートし、artistとしてlegendを追加します。例えば、lege = Legend(ax, l2, ‘C’, loc=’lower right’)で凡例を設定し、ax.add_artist(lege)でグラフに表示できます。
Fancyboxと影の表示

fancybox=Trueを指定すると凡例の枠線の角が丸くなり、shadow=Trueを指定すると凡例に影が付きます。
凡例のタイトルを表示

titleパラメータで凡例の上にタイトルを表示できます。
凡例と枠線の間隔の調整

borderpadの値を大きくすると、凡例内容と枠線の間隔を広げられます。
凡例同士の間隔の調整

labelspacingの値を大きくすると、凡例内の各項目間の間隔を広げられます。
凡例の文字サイズの調整

fontsize=’xx-large’や整数値を指定することで、凡例のフォントサイズを調整できます。
コメント
[…] [matplotlibの使い方] 8. 凡例matplotlibでは、凡例をplt.legend()またはax.legend()で表示できる。ここでは、その設定方法について説明する。sabopy.com2019.02.15 […]