【问题标题】:Show correlation values in pairplot using seaborn in python在 python 中使用 seaborn 在pairplot中显示相关值
【发布时间】:2018-11-22 17:44:08
【问题描述】:

我有以下数据:

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 中做到这一点。

【问题讨论】:

    标签: python seaborn correlation


    【解决方案1】:

    据我所知,没有现成的功能可以做到这一点,你必须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()
        ax.annotate(f'ρ = {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.10, 0.04, 0.22], 
            'prop_12m':    [0.0, 0.0, 0.06, 0.38, 0.61, 0.01, 0.10, 0.04, 0.22], 
            'prop_6m':     [0.0, 0.0, 0.10, 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()
    

    【讨论】:

    • 非常感谢!这非常有用。
    猜你喜欢
    • 2022-11-13
    • 2014-12-08
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    • 2019-06-05
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多