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

Des paires de Seaborn avec des teintes continues ?

IIUC, vous pouvez simplement attribuer le target_df sous forme de colonne dans train_df et transmettez-le comme hue :

sns.pairplot(data=train_df.assign(target=target_df, 
                                  hue='target')

Cependant, cela sera extrêmement lent si votre target est continue. Au lieu de cela, vous pouvez faire un double for boucle :

num_features = len(train_df.columns)
fig,ax = plt.subplots(num_features, num_features, figsize=(10,10))
for i in train_df.columns:
    for j in train_df.columns:
        if i==j:    # diagonal
            sns.distplot(train_df[0], kde=False, ax=ax[i][j])
        else:       # off diagonal
            sns.scatterplot(x=train_df[i],y=train_df[j], 
                            ax=ax[i][j], hue=target_df, palette='BrBG',
                            legend=False)

Ce qui vous donne quelque chose comme ceci :


Cela pourrait être plus facile qu'il ne l'est actuellement, mais il n'est pas nécessaire de recréer PairGrid vous-même.

diamonds = sns.load_dataset("diamonds")
g = sns.PairGrid(diamonds, vars=["carat", "depth", "table"])
g.map_diag(sns.kdeplot, color=".2")
g.map_offdiag(sns.scatterplot, hue=diamonds["price"], s=5, linewidth=0)
g.axes[1, -1].legend(loc="center left", bbox_to_anchor=(.7, .5))