Maison >développement back-end >Tutoriel Python >Comment tracer des parcelles Seaborn dans des sous-parcelles Matplotlib définies ?
De nombreuses parcelles Seaborn peuvent être tracées dans des sous-parcelles avec la fonction matplotlib.pyplot.subplots, de la même manière que les tracés matplotlib classiques peut être tracé. Cependant, certaines fonctions ont certaines limitations, comme l'absence de paramètre ax
Avant la version 0.11, la fonction seaborn.distplot était utilisée pour tracer de nombreux types différents de distributions. Cette fonction est obsolète avec Seaborn 0.11
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.
Pour toute fonction Seaborn qui n'a pas de paramètre d'axe, il existe une fonction correspondante au niveau des axes qui peut être utilisée à la place. . Pour trouver la fonction correcte, vous pouvez vous référer à la documentation Seaborn pour le tracé au niveau de la figure pour trouver la fonction de tracé au niveau des axes appropriée.
Voici une liste de tracés au niveau de la figure qui n'ont pas de hache. paramètre :
Dans ce Dans ce cas, le but est de tracer deux histogrammes différents sur la même ligne. Puisque displot est une fonction au niveau de la figure et n'a pas de paramètre ax, elle ne peut pas être utilisée avec matplotlib.pyplot.subplots. Dans ce cas, la fonction correcte à utiliser serait histplot, qui est une fonction au niveau des axes qui a un paramètre axe.
Voici un exemple utilisant histplot pour tracer deux histogrammes différents sur la même ligne :
<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>
Cela produira une figure avec deux histogrammes tracés sur la même ligne.
Si vous avez plusieurs dataframes, vous pouvez les combiner en utilisant pandas pd.concat, puis utilisez la méthode assign pour créer une colonne d'identification « source », qui peut être utilisée pour spécifier row= ou col=, ou comme paramètre de teinte
<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>
Vous pouvez ensuite utilisez ce cadre de données combiné pour tracer une variété de tracés différents à l'aide de seaborn.
Pour plus d'informations, consultez les ressources suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!