Heim >Backend-Entwicklung >Python-Tutorial >Warum funktioniert Seaborn Displot nicht mit Matplotlib-Subplots?
Fehler: Seaborn Displot zeichnet nicht innerhalb von Unterplots auf
Seaborn Displot generiert bei Verwendung mit Matplotlib nicht wie erwartet nebeneinander liegende Plots. pyplot.subplots. Dieser Fehler tritt auf, weil displot eine Funktion auf Figurenebene ist, der der für Unterplots erforderliche Parameter „ax“ fehlt.
Lösung:
So beheben Sie das Problem und zeigen zwei Plots an In derselben Zeile muss das entsprechende Diagramm auf Achsenebene verwendet werden, das den Parameter „ax“ unterstützt. In diesem Fall ist histplot die bevorzugte Option. Hier ist der korrigierte Code:
<code class="python">import seaborn as sns import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots(1, 2) sns.histplot(x=X_train['Age'], hue=y_train, ax=ax1) sns.histplot(x=X_train['Fare'], hue=y_train, ax=ax2)</code>
Alternative Ansätze:
Wenn Sie displot bevorzugen, können Sie Ihre Daten mit pd.melt und in ein langes Format umstrukturieren Wenden Sie displot auf den transformierten Datenrahmen an.
<code class="python">dfl = X_train.melt(id_vars='passenger', value_vars=['Age', 'Fare'], var_name='category', value_name='value') sns.displot(data=dfl, x='value', col='category', hue='passenger')</code>
Zusätzliche Überlegungen:
Für Diagramme auf Achsenebene mit mehreren Datenrahmen verwenden Sie pd.concat, um diese zu kombinieren und einen zuzuweisen eindeutige „Quelle“-Spalte, um den Ursprung jedes Datenpunkts zu identifizieren. Diese Spalte kann dann für row=, col= oder hue= verwendet werden.
Das obige ist der detaillierte Inhalt vonWarum funktioniert Seaborn Displot nicht mit Matplotlib-Subplots?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!