gpt4 book ai didi

python - 根据 pearsonr 值 : 更改每个 PairGrid Seaborn 图中的字体颜色

转载 作者:行者123 更新时间:2023-12-01 03:02:40 25 4
gpt4 key购买 nike

我正在使用seaborn进行绘图,并且正在使用seaborn.PairGrid函数(代码如下)。

我能够计算 pearsonr 值并设置我的颜色列表。

有没有办法根据 pearsonr 相关值来更改每个对图颜色?

global my_colors
my_colors = []

def corrfunc(x, y, **kws):
r = stats.pearsonr(x, y)[0] ** 2
ax = plt.gca()
ax.annotate("r$^2$ = {:.2f}".format(r),
xy=(.1, .9), xycoords=ax.transAxes)
if r > 0.6:
my_colors.append('g')
elif r < 0.6:
my_colors.append('r')
return r

df = pd.read_excel(Inp_Filename, sheetname='IC_Data')

IC_Plot = sns.PairGrid(df)
IC_Plot.map_offdiag(corrfunc)

IC_Plot.map_offdiag(sns.regplot, color='g')
#Need to change color of each
#pairplot based on the pearsonr value

IC_Plot.map_offdiag(plt.scatter, s=10)

IC_Plot.savefig("IC_Pair.png")

最佳答案

您可以从确定颜色的函数中调用绘图方法。这样,颜色可以简单地作为绘图函数的参数给出。

import seaborn.apionly as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr

df = sns.load_dataset("iris")

def corrfunc(x, y, **kws):
r = pearsonr(x, y)[0] ** 2
ax = plt.gca()
ax.annotate("r$^2$ = {:.2f}".format(r),
xy=(.1, .9), xycoords=ax.transAxes)
if r > 0.6:
col = "g"
elif r < 0.6:
col= 'r'

sns.regplot(x,y,color=col)
return r


IC_Plot = sns.PairGrid(df)
IC_Plot.map_offdiag(corrfunc)

plt.show()

enter image description here

关于python - 根据 pearsonr 值 : 更改每个 PairGrid Seaborn 图中的字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43668563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com