Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで凡例を行ごとに2列に整列させる方法

Matplotlibの凡例(legend)を2列に整列させて表示したい場合、ncolパラメータを使うことで簡単に実現できます。以下の手順で説明します。

手順

  • 図(figure)のサイズを設定し、サブプロット周辺の余白(パディング)を調整します。
  • plot()メソッドを使用して、line1、line2、line3というラベルを持つ線を描画します。
  • ncol=2を指定してlegend()メソッドを呼び出し、2列構成の凡例を図上に配置します。
  • show()メソッドで図を表示します。

コード例

from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.plot([1, 2, 3], label="line1")
plt.plot([3, 2, 1], label="line2")
plt.plot([2, 3, 1], label="line3")
plt.legend(ncol=2, loc="upper right")
plt.show()

解説

このコードでは、まずrcParamsを使って図のサイズを7.50×3.50インチに設定し、figure.autolayoutを有効にすることでラベルや凡例が図からはみ出さないよう自動調整しています。

次に、3本の異なるデータ系列をplot()で描画し、それぞれに「line1」「line2」「line3」というラベルを付けています。ポイントとなるのはplt.legend(ncol=2)の部分です。デフォルトでは凡例項目は縦に1列で並びますが、ncol=2を指定することで、項目が2列に分けて整列されます。さらにloc="upper right"により、凡例を図の右上に配置しています。

なお、Matplotlib 3.6以降ではncolsという引数名も使用できるため、バージョンに応じて使い分けるとよいでしょう。

出力結果

実行すると、3本の折れ線グラフとともに、右上に2列に整列された凡例が表示されます。

Matplotlibで凡例を行ごとに2列に整列させる方法

  1. Matplotlibで凡例要素を水平方向に並べて表示する方法

    Matplotlibでは、legend()メソッドのncol引数を指定することで、凡例の要素を水平方向に並べて表示できます。ここでは、その具体的な手順とサンプルコードを紹介します。 手順 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。 plot()メソッドを使って、line1、line2、line3というラベル付きの折れ線グラフを描画します。 legend()メソッドで図に凡例を配置します。このとき、引数ncolにラベルの数を指定すると、凡例がその列数で水平に並びます。 show()メソッドで図を表示します。 コード例 from matplotlib imp

  2. Matplotlibの図に凡例を配置・整列させる方法

    Matplotlibで作成した図(フィギュア)に凡例を適切な位置に配置し、要素を整列させる方法を解説します。凡例の位置調整には bbox_to_anchor 引数を使用するのがポイントです。 手順 plot() メソッドを使って line1 と line2 の2本の線をプロットします。 legend() メソッドで図に凡例を配置します。このとき bbox_to_anchor を使って凡例の位置を指定し、ncol 引数で凡例要素を横並びに整列させます。 show() メソッドを呼び出して図を表示します。 コード例 from matplotlib import pyplot as plt pl