Heim >Backend-Entwicklung >Python-Tutorial >Warum erstellt Seaborn.displot() keine nebeneinander liegenden Histogramme?

Warum erstellt Seaborn.displot() keine nebeneinander liegenden Histogramme?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 03:29:30830Durchsuche

Why Won't Seaborn.displot() Create Side-by-Side Histograms?

seaborn.displot zeichnet nicht innerhalb definierter Unterdiagramme auf

Wenn Sie seaborn.displot() verwenden, um zwei nebeneinander liegende Histogramme zu erstellen, kann es zu einem unerwarteten Ergebnis kommen wobei die Diagramme separat auf verschiedenen Linien gerendert werden. Dieses Verhalten unterscheidet sich von anderen Seaborn-Funktionen wie violinplot(), die die erwarteten Paralleldiagramme erzeugen.

Die Abwertung von seaborn.distplot()

Der Grund für diese Diskrepanz liegt in der Abschaffung von seaborn.distplot in Version 0.11. Es wurde ersetzt durch:

  • displot(): Eine Funktion auf Figurenebene, die Flexibilität beim Plottyp bietet, aber ohne den Axt-Parameter, wodurch sie nicht mit matplotlib.pyplot.subplots kompatibel ist.
  • histplot(): Eine Funktion auf Achsenebene, die speziell für Histogramme entwickelt wurde, einschließlich Glättung der Kerndichte, die über den Axt-Parameter verfügt und mit matplotlib.pyplot.subplots verwendet werden kann.

Lösung: Verwendung von Seaborn .histplot()

Um das Problem zu beheben und die gewünschten nebeneinander liegenden Histogramme zu erhalten, ersetzen Sie displot() durch histplot(). Diese Funktion unterstützt den Axt-Parameter, mit dem Sie die Achsen angeben können, auf denen die Diagramme gerendert werden.

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

Mehrere Datenrahmen verarbeiten

Wenn Sie mit mehreren Datenrahmen arbeiten, können Sie diese mit kombinieren pd.concat und fügen Sie eine neue Spalte „Quelle“ hinzu, um die Datenquellen zu identifizieren. Diese Spalte kann dann für die Argumente row=, col= oder hue= verwendet werden.

Das obige ist der detaillierte Inhalt vonWarum erstellt Seaborn.displot() keine nebeneinander liegenden Histogramme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn