Python >> Tutoriel Python >  >> Python Tag >> Seaborn

Comment tracer une matrice de tracés de distribution Seaborn pour toutes les colonnes de la trame de données

Vous pouvez créer plusieurs figures avec matplotlib en utilisant des sous-parcelles comme celle-ci

import matplotlib.pyplot as plt
# Define the number of rows and columns you want
n_rows=3
n_cols=3
# Create the subplots
fig, axes = plt.subplots(nrows=n_rows, ncols=n_cols)

Vous pouvez voir la fonction de sous-parcelles comme créant une matrice (tableau 2D) de forme [n_lignes, n_cols], et en utilisant les coordonnées des éléments de la matrice pour choisir où tracer.

Vous tracez ensuite chaque colonne dans une sous-parcelle différente avec le ax argument pour donner les coordonnées d'un élément de matrice. Utilisation de ax=axes[i,j] spécifiera la sous-parcelle dans laquelle vous souhaitez imprimer :

for i, column in enumerate(df.columns):
    sns.distplot(df[column],ax=axes[i//n_cols,i%n_cols])

Du commentaire de BenCaldwell "i//ncols donne la division du sol qui est la ligne lorsque vous travaillez de gauche à droite puis de haut en bas. i%ncols vous donnera le reste entier qui est la colonne lorsque vous travaillez de gauche à droite de haut en bas. en bas."

Si vous souhaitez tracer un jeu de données discret au lieu d'utiliser distplot pour estimer la distribution des données derrière vos données, vous pouvez utiliser la nouvelle fonction histplot.


imo légèrement plus élégant que la solution de @Bruce Swain :

import matplotlib.pyplot as plt
import seaborn as sns

for i, column in enumerate(df.columns, 1):
    plt.subplot(3,3,i)
    sns.histplot(df[column])