HOWTO · Seaborn

Fügen Sie dem Seaborn Plot Achsenbeschriftungen hinzu

Legen Sie die Beschriftungen der x- und y-Achse in Seaborn-Diagrammen mit Axes-Methoden oder Matplotlib pyplot fest und passen Sie ihr Erscheinungsbild an.

Auf dieser Seite

Um Achsenbeschriftungen in einem Seaborn-Diagramm hinzuzufügen oder zu ändern, rufen Sie set_xlabel() und set_ylabel() für das Matplotlib-Axes-Objekt auf, das die Plotfunktion zurückgibt. Seaborn leitet Standardbeschriftungen häufig aus den den Variablen x und y zugeordneten Daten ab. Welche Beschriftungen tatsächlich verwendet werden, hängt jedoch vom Diagramm und seinen Eingaben ab. Wenn Sie aussagekräftige Beschriftungen für Ihre Leser benötigen, legen Sie sie ausdrücklich fest.

Axes.set_xlabel() und Axes.set_ylabel() verwenden

Mit diesem Ansatz sprechen Sie gezielt die von Seaborn zurückgegebene Achse an. Das ist besonders übersichtlich, wenn eine Abbildung mehrere Diagramme enthält. Das Beispiel verwendet einen kleinen Datensatz direkt im Arbeitsspeicher und gibt die Beschriftungen nach dem Festlegen aus.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

days = ["Mon", "Tue", "Wed"]
orders = [12, 18, 15]
ax = sns.lineplot(x=days, y=orders, marker="o")
ax.set_xlabel("Day", fontsize=12)
ax.set_ylabel("Orders", fontsize=12)
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Seaborn-Liniendiagramm mit den Achsenbeschriftungen Day und Orders

Mit fontsize und color können Sie das Erscheinungsbild der Beschriftungen anpassen. Übergeben Sie beispielsweise color="navy" an eine der beiden Methoden. Diese Aufrufe ändern die Achsenbeschriftungen; ein Titel ist davon unabhängig. Verwenden Sie bei Bedarf ax.set_title("Orders by day"). Wenn sich Teilstrichbeschriftungen auf der Achse drängen, drehen Sie sie mit ax.tick_params(axis="x", labelrotation=45) oder schaffen Sie mehr Platz, indem Sie mit fig, ax = plt.subplots(figsize=(8, 4)) eine größere Abbildung erstellen, bevor Sie das Diagramm auf dieser Achse zeichnen.

Beide Beschriftungen mit Axes.set() festlegen

Verwenden Sie set(), wenn Sie beide Beschriftungen am selben Axes-Objekt festlegen möchten. Mit den Schlüsselwortargumenten xlabel und ylabel lassen sich beide Änderungen gemeinsam vornehmen. Speichern Sie die zurückgegebene Achse in einer Variablen, damit das Ziel eindeutig ist.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

months = ["Jan", "Feb", "Mar"]
visitors = [120, 145, 138]
ax = sns.lineplot(x=months, y=visitors, marker="o")
ax.set(xlabel="Month", ylabel="Visitors")
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Seaborn-Liniendiagramm mit den Achsenbeschriftungen Month und Visitors

Beschriftungen mit matplotlib.pyplot.xlabel() und matplotlib.pyplot.ylabel() festlegen

Die Funktionen matplotlib.pyplot.xlabel() und matplotlib.pyplot.ylabel() sind praktisch für ein einfaches Skript, das mit einer aktuellen Achse arbeitet. Sie wirken auf die aktuelle Achse von pyplot. Wenn eine Abbildung mehrere Diagramme enthält, wählen Sie daher zuerst die gewünschte Achse aus. Im Beispiel wird die Seaborn-Achse vor dem Anwenden der Beschriftungen zur aktuellen Achse gemacht.

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import seaborn as sns

products = ["A", "B", "C"]
sales = [8, 13, 10]
ax = sns.barplot(x=products, y=sales)
plt.sca(ax)
plt.xlabel("Product", fontsize=12)
plt.ylabel("Sales", fontsize=12)
print(ax.get_xlabel(), "|", ax.get_ylabel())
plt.close()

Seaborn-Balkendiagramm mit den Achsenbeschriftungen Product und Sales

Bei einem einzelnen Diagramm können Sie die Beschriftungen mit beiden APIs festlegen. Bevorzugen Sie die Axes-Methoden, wenn das Plotobjekt bereits verfügbar ist oder Sie mehrere Achsen verwalten. Verwenden Sie pyplot, wenn dessen Modell mit der aktuellen Achse zum übrigen Code passt. Um Gitternetzlinien hinzuzufügen, rufen Sie ax.grid(True) für die gewünschte Achse auf.