Ändern Sie den Ort der Legende in Seaborn Plot

Manav Narula 15 Februar 2024
Ändern Sie den Ort der Legende in Seaborn Plot

In diesem Tutorial erfahren Sie, wie Sie die Position der Legende in einem Seegrunddiagramm in Python ändern.

Dazu müssen wir die Standardlegende deaktivieren. Dies kann durch Setzen des Parameters legend auf False in der Plotfunktion erfolgen. Wir werden die Legende explizit mit der Funktion matplotlib.pyplot.legend() aus der matplotlib-Bibliothek hinzufügen.

Um die Position der Legende zu ändern, verwenden wir den Parameter loc dieser Funktion. Als Wert dieses Parameters können wir die erforderliche Position der Legende angeben.

Beispielsweise,

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")

Standort der Seaborn-Legende

Als Wert für diesen Parameter können wir auch andere Zahlen angeben. Unterschiedliche Nummern entsprechen unterschiedlichen Orten. Zum Beispiel 1 für die obere rechte Position, 2 gibt die obere linke Position an usw. In diesem Matplotlib-Artikel finden Sie die Tabelle der Beziehung zwischen Zahlen und Positionen.

Standardmäßig ist der Wert des Parameters loc 0, was bedeutet, dass die Position innerhalb des Plots so gesucht wird, dass eine minimale Überlappung stattfindet.

Wir können die Legendenbox auch außerhalb des Plots platzieren, indem wir den Parameter bbox_to_anchor verwenden. Der bbox_to_anchor gibt die Position der Legende in Bezug auf die im Parameter loc angegebene Position an. Wenn wir den Parameter bbox_to_anchor mit einem Tupel aus zwei Elementen setzen, dann betrachtet er deren Werte als x- und y-Werte für die Positionierung entlang der angegebenen loc.

Beispielsweise,

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

Standort der Seaborn-Legende

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

Verwandter Artikel - Seaborn Legend