我正在使用此代码
sns.set(palette="dark")
g=sns.pairplot(PCA_atrF_df, x_vars={'CP1','CP3','ModCP2'}, hue= 'Hemis',
y_vars={'Media','SD','DesMax', 'DesMin' })
def corrfunc(x, y, **kws):
r, _ = stats.pearsonr(x, y)
ax = plt.gca()
ax.annotate("r = {:.2f}".format(r),
xy=(.65, .03), xycoords=ax.transAxes)
g.map(corrfunc)
sns.plt.show()
x
和y
vars是数据框的列(PCA_atrF_df
)。我也有两个类别(“Hemis”:Sur或Norte),我和r2(皮尔森)合作得到这个情节:
但我需要将x
个传奇个性化为:
'CP1: 0.71' 'ModCP2: 0.17' 'CP3: 0.05'
数字来自此阵列的前3个位置:
array([ 0.71147788, 0.17629621, 0.05131766, 0.02616651, 0.01864328,
0.00529765, 0.0043043 , 0.00197723, 0.00146853, 0.00112802,
0.0010507 , 0.00087202])
此外,正如您所看到的,每个图中都存在模糊的r2(皮尔逊相关),因为我为每个“Hemis”获得了一个相关性。尽管de“Hemis”可以调整一个r2作为孔组,但是可以保留每个“hemis”的颜色吗?
答案 0 :(得分:0)
我使用相关问题以不那么优雅的方式解决了个性化传奇,但至少是有效的。以防任何人需要它或可以改善它。我仍然期待解决独特的相关问题(两个类别中的一个r2)。
sns.set(palette="dark")
g=sns.pairplot(PCA_atrF_df, x_vars=['CP1','ModCP2','CP3'], hue='Hemis',
y_vars=['DesMax', 'DesMin','SD','Media'])
def corrfunc(x, y, **kws):
r, _ = stats.pearsonr(x, y)
ax = plt.gca()
ax.annotate("r = {:.2f}".format(r),
xy=(.65, .03), xycoords=ax.transAxes)
g.map(corrfunc)
xlabels,ylabels = [],[]
for ax in g.axes[-1,:]:
xlabel = ax.xaxis.get_label_text()
xlabels.append(xlabel)
for ax in g.axes[:,0]:
ylabel = ax.yaxis.get_label_text()
ylabels.append(ylabel)
for i in range(len(xlabels)):
g.axes[3,i].xaxis.set_label_text(xlabels[i]+ ': '+ str(pca.fracs[i])[:4])
plt.show()
在这种情况下,我想添加的图例是(前3个数字):
array([ 6.13922272e-01, 2.94925588e-01, 4.30136304e-02,
2.94031518e-02, 7.90963090e-03, 4.43885165e-03,
3.09109701e-03, 1.17998760e-03, 8.80521733e-04,
5.21848967e-04, 4.39901495e-04, 2.73517962e-04])