Matplotlib の凡例タイトル

Manav Narula 2023年1月30日
  1. title パラメーターを使用して、matplotlib フィギュアの凡例にタイトルを追加する
  2. set_title() 関数を使用して、matplotlib フィギュアの凡例にタイトルを追加する
Matplotlib の凡例タイトル

凡例は、グラフにプロットされたデータについて説明する小さなボックスです。これは、どの要素または色がどのデータを表すかを示すことによってグラフを説明するために使用されます。通常、プロットの隅に配置されます。

matplotlib の図では、matplotlib.pyplot.legend() 関数を使用して凡例を追加できます。

このチュートリアルでは、Python で matplotlib フィギュアの凡例にタイトルを追加する方法について説明します。

title パラメーターを使用して、matplotlib フィギュアの凡例にタイトルを追加する

これを実現するために、legend() 関数の title パラメーターを簡単に使用できます。

例えば、

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
plt.plot(df)
legend = plt.legend(["Day 1", "Day 2"], title="Legend")

title 引数を使用した matplotlib 凡例タイトル

上記のメソッドは、サブプロットを処理するときに Axes オブジェクトでも機能します。

タイトルのサイズは、legend() 関数内の title_fontsize パラメーターを使用して変更できます。他のカスタマイズも行うことができます。_legend_box.sep メソッドを使用して、凡例のコンテンツとタイトルの間の距離を制御できます。タイトルの配置は、_legend_box.align を使用して変更できます。

次の例では、上記の方法のいくつかを使用します。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
plt.plot(df)
legend = plt.legend(["Day 1", "Day 2"], title="Legend", title_fontsize=15)
legend._legend_box.sep = 20

微調整を加えた title 引数を使用した matplotlib 凡例タイトル

set_title() 関数を使用して、matplotlib フィギュアの凡例にタイトルを追加する

この関数は通常、軸に凡例を追加するために使用されます。これを使用して、凡例にタイトルを追加することもできます。タイトルのプロパティは、prop 引数を使用して指定できます。

例えば、

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
plt.plot(df)
legend = plt.legend(["Day 1", "Day 2"])
legend.set_title("Legend", prop={"size": 15})

set_title()関数を使用した matplotlib 凡例タイトル

上記の例では、タイトルのサイズを大きくしました。その他のカスタマイズや微調整も辞書で指定でき、prop 引数に渡されます。前の例で説明したメソッド、_legend_box.align および _legend_box.sep もここで使用できます。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Matplotlib Legend