Heim > Artikel > Backend-Entwicklung > Wie zeichnet man Seaborn-Plots innerhalb definierter Matplotlib-Subplots auf?
Viele Seaborn-Plots können mit der Funktion matplotlib.pyplot.subplots in Unterplots dargestellt werden, auf die gleiche Weise wie normale Matplotlib-Plots geplottet werden kann. Einige Funktionen weisen jedoch einige Einschränkungen auf, z. B. das Fehlen eines Axt-Parameters.
Vor Version 0.11 wurde die Funktion seaborn.distplot zum Plotten vieler verschiedener Arten von verwendet Verteilungen. Diese Funktion ist mit Seaborn 0.11 veraltet.
seaborn.distplot() has been DEPRECATED in seaborn 0.11 and is replaced with the following: displot(), a figure-level function with a similar flexibility over the kind of plot to draw. This is a FacetGrid, and does not have the ax parameter, so it will not work with matplotlib.pyplot.subplots. histplot(), an axes-level function for plotting histograms, including with kernel density smoothing. This does have the ax parameter, so it will work with matplotlib.pyplot.subplots.
Für jede Seaborn-Funktion, die keinen Axt-Parameter hat, gibt es eine entsprechende Funktion auf Achsenebene, die stattdessen verwendet werden kann . Um die richtige Funktion zu finden, können Sie in der Seaborn-Dokumentation für den Plot auf Figurenebene nach der geeigneten Plotfunktion auf Achsenebene suchen.
Hier ist eine Liste von Plots auf Figurenebene, die keine Axt haben Parameter:
In diesem In diesem Fall besteht das Ziel darin, zwei verschiedene Histogramme in derselben Zeile darzustellen. Da displot eine Funktion auf Figurenebene ist und keinen Axt-Parameter hat, kann sie nicht mit matplotlib.pyplot.subplots verwendet werden. In diesem Fall wäre die richtige Funktion histplot, eine Funktion auf Achsenebene, die über einen ax-Parameter verfügt.
Hier ist ein Beispiel, bei dem histplot verwendet wird, um zwei verschiedene Histogramme in derselben Zeile darzustellen:
<code class="python">import seaborn as sns import matplotlib.pyplot as plt # load data penguins = sns.load_dataset("penguins", cache=False) # select the columns to be plotted cols = ['bill_length_mm', 'bill_depth_mm'] # create the figure and axes fig, axes = plt.subplots(1, 2) axes = axes.ravel() # flattening the array makes indexing easier for col, ax in zip(cols, axes): sns.histplot(data=penguins[col], kde=True, stat='density', ax=ax) fig.tight_layout() plt.show()</code>
Dadurch wird eine Abbildung mit zwei Histogrammen erstellt, die in derselben Zeile dargestellt werden.
Wenn Sie mehrere Datenrahmen haben, können Sie diese kombinieren Verwenden Sie pandas pd.concat und verwenden Sie dann die Zuweisungsmethode, um eine identifizierende „Quelle“-Spalte zu erstellen, die zur Angabe von row= oder col= oder als Farbtonparameter verwendet werden kann
<code class="python"># list of dataframe lod = [df1, df2, df3] # create one dataframe with a new 'source' column to use for row, col, or hue df = pd.concat((d.assign(source=f'df{i}') for i, d in enumerate(lod, 1)), ignore_index=True)</code>
Das können Sie dann Verwenden Sie diesen kombinierten Datenrahmen, um eine Vielzahl verschiedener Diagramme mit Seaborn zu zeichnen.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie zeichnet man Seaborn-Plots innerhalb definierter Matplotlib-Subplots auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!