SeabornPlot の凡例の場所を変更する

Manav Narula 2021年11月20日
SeabornPlot の凡例の場所を変更する

このチュートリアルでは、Python の Seaborn のプロットで凡例の場所を変更する方法を学習します。

このために、デフォルトの凡例を無効にする必要があります。これは、プロット関数で legend パラメーターを False に設定することで実行できます。matplotlib ライブラリの matplotlib.pyplot.legend() 関数を使用して、凡例を明示的に追加します。

凡例の位置を変更するには、この関数の loc パラメーターを使用します。このパラメーターの値として、凡例の必要な場所を指定できます。

例えば、

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]}
)

sns.lineplot(data=df, legend=False)
plt.legend(labels=["Day1", "Day2"], loc="upper right")

Seaborn の凡例の場所

このパラメーターの値として、異なる数値を指定することもできます。異なる番号は異なる場所に対応します。たとえば、1 は右上の位置、2 は左上の位置などを指定します。数値と位置の関係の表を取得するには、この Matplotlib の記事を参照してください。

デフォルトでは、loc パラメータの値は 0 です。これは、最小のオーバーラップが発生するように、プロット内の位置を検索することを意味します。

bbox_to_anchor パラメータを使用して、凡例ボックスをプロットの外側に配置することもできます。bbox_to_anchor は、loc パラメーターで指定された場所に対する凡例の位置を指定します。bbox_to_anchor パラメーターを 2 要素のタプルで設定すると、それらの値は、指定された loc に沿って配置するための x 値および y 値と見なされます。

例えば、

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

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

sns.lineplot(data=df, legend=False)
plt.legend(labels=["Day1", "Day2"], loc=2, bbox_to_anchor=(1, 1))

Seaborn の凡例の場所

著者: 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

関連記事 - Seaborn Legend