Wie zeichnet man Seaborn-Plots innerhalb definierter Matplotlib-Subplots auf?

Patricia Arquette
Freigeben: 2024-11-01 18:02:02
Original
310 Leute haben es durchsucht

How to Plot Seaborn Plots Within Defined Matplotlib Subplots?

Seaborn zeichnet nicht innerhalb definierter Unterplots 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.

Die Abschaffung von seaborn.distplot

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.
Nach dem Login kopieren

Die richtige Funktion finden

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:

  • relplot
  • displot
  • catplot

Verschiedene Diagramme auf derselben Linie darstellen

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>
Nach dem Login kopieren

Dadurch wird eine Abbildung mit zwei Histogrammen erstellt, die in derselben Zeile dargestellt werden.

Verschiedene Diagramme aus mehreren Datenrahmen zeichnen

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>
Nach dem Login kopieren

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:

  • [Seaborn-Dokumentation](https://seaborn.pydata .org/)
  • [Subplots mit Matplotlib zeichnen](https://matplotlib.org/stable/tutorials/intermediate/subplots.html)
  • [Seaborn- und Pandas-Integration](https: //seaborn.pydata.org/tutorial/using_pandas.html)

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!