PairGrid 上的 Seaborn 相关系数

2024-03-30

是否有 matplotlib 或 seaborn 图可以与 g.map_lower 或 g.map_upper 一起使用来获取每个二元图显示的相关系数,如下所示? plt.text 是手动映射以获得下面的示例,这是一个繁琐的过程。


您可以将任何函数传递给map_*方法,只要它遵循一些规则:1)它应该绘制在“当前”轴上,2)它应该采用两个向量作为位置参数,3)它应该接受color关键字参数(如果您想与hue选项)。

所以在你的情况下你只需要定义一点corrfunc函数,然后将其映射到您想要注释的轴上:

import numpy as np
from scipy import stats
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="white")

mean = np.zeros(3)
cov = np.random.uniform(.2, .4, (3, 3))
cov += cov.T
cov[np.diag_indices(3)] = 1
data = np.random.multivariate_normal(mean, cov, 100)
df = pd.DataFrame(data, columns=["X", "Y", "Z"])

def corrfunc(x, y, **kws):
    r, _ = stats.pearsonr(x, y)
    ax = plt.gca()
    ax.annotate("r = {:.2f}".format(r),
                xy=(.1, .9), xycoords=ax.transAxes)

g = sns.PairGrid(df, palette=["red"])
g.map_upper(plt.scatter, s=10)
g.map_diag(sns.distplot, kde=False)
g.map_lower(sns.kdeplot, cmap="Blues_d")
g.map_lower(corrfunc)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PairGrid 上的 Seaborn 相关系数 的相关文章

随机推荐