在python中使用seaborn在pairplot中显示相关值

时间:2018-06-13 08:11:53

标签: python seaborn correlation

我有以下数据:

prop_tenure  prop_12m  prop_6m  
0.00         0.00      0.00   
0.00         0.00      0.00   
0.06         0.06      0.10   
0.38         0.38      0.25   
0.61         0.61      0.66   
0.01         0.01      0.02   
0.10         0.10      0.12   
0.04         0.04      0.04   
0.22         0.22      0.22 

我正在做一个如下的配对图:

sns.pairplot(data)
plt.show()

但是我想在变量之间显示相关系数,如果可能的话,我想显示每个变量的偏度和峰度。 我不知道如何在seaborn中做到这一点。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:6)

据我所知,没有开箱即用的功能,你必须create your own

from scipy.stats import pearsonr
import matplotlib.pyplot as plt 

def corrfunc(x,y, ax=None, **kws):
    """Plot the correlation coefficient in the top left hand corner of a plot."""
    r, _ = pearsonr(x, y)
    ax = ax or plt.gca()
    # Unicode for lowercase rho (ρ)
    rho = '\u03C1'
    ax.annotate(f'{rho} = {r:.2f}', xy=(.1, .9), xycoords=ax.transAxes)

使用输入的示例:

import seaborn as sns; sns.set(style='white')
import pandas as pd

data = {'prop_tenure': [0.0, 0.0, 0.06, 0.38, 0.61, 0.01, 0.1, 0.04, 0.22], 
        'prop_12m':    [0.0, 0.0, 0.06, 0.38, 0.61, 0.01, 0.1, 0.04, 0.22], 
        'prop_6m':     [0.0, 0.0, 0.1, 0.25, 0.66, 0.02, 0.12, 0.04, 0.22]}

df = pd.DataFrame(data)

g = sns.pairplot(df)
g.map_lower(corrfunc)
plt.show()

enter image description here