我有以下数据:
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中做到这一点。 有人可以帮帮我吗?
答案 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()