8 votes

Valeurs de corrélation dans pairplot()

Existe-t-il un moyen d'afficher les valeurs de corrélation par paire avec seaborn.pairplot() comme dans l'exemple ci-dessous (créé avec ggpairs() en R ) ? Je peux faire les tracés en utilisant le code ci-joint, mais je ne peux pas ajouter les corrélations. Merci de votre compréhension.

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

iris = sns.load_dataset('iris')
g = sns.pairplot(iris, kind='scatter', diag_kind='kde')
# remove upper triangle plots
for i, j in zip(*np.triu_indices_from(g.axes, 1)):
    g.axes[i, j].set_visible(False)
plt.show()

enter image description here

14voto

Diziet Asahi Points 7585

Si vous utilisez PairGrid au lieu de pairplot vous pouvez passer une fonction personnalisée qui calculera le coefficient de corrélation et l'affichera sur le graphique :

from scipy.stats import pearsonr
def reg_coef(x,y,label=None,color=None,**kwargs):
    ax = plt.gca()
    r,p = pearsonr(x,y)
    ax.annotate('r = {:.2f}'.format(r), xy=(0.5,0.5), xycoords='axes fraction', ha='center')
    ax.set_axis_off()

iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map_diag(sns.distplot)
g.map_lower(sns.regplot)
g.map_upper(reg_coef)

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X