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