皮尔逊相关系数相关性分析

利用皮尔逊相关系数( Pearson correlation coefficient)对各参数进行相关性分析分析,挑选参与后续任务的参数

#代码来源https://blog.csdn.net/qq_41517071/article/details/126850752

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import pearsonr
import matplotlib as mpl

def cm2inch(x,y):
    return x/2.54,y/2.54

size1 = 10.5
#这块设置字体的,人家设置的本来已经很漂亮了,暂时不关注
mpl.rcParams.update(
{
'text.usetex': False,
'font.family': 'stixgeneral',
'mathtext.fontset': 'stix',
"font.family":'serif',
"font.size": size1,
"font.serif": ['Times New Roman'],
}
)
fontdict = {'weight': 'bold','size':size1,'family':'SimHei'}

#这个地方,放你的Excel文件路径
fp = r'F:\PostGraduate\PaperReproduction\数据处理\OwnData\data.xlsx'
#这个地方放你的表格里面sheet名称,默认是‘sheet1’,一般不用修改
df = pd.read_excel(fp,sheet_name='sheet1',header = 0)
#这个函数可选参数为你要使用的相关系数,返回一个含有相关系数的矩阵
df_coor=df.corr()
#指定画图的尺寸,详见博客
fig = plt.figure(figsize=(cm2inch(16,12)))
#plt.gca( )中完成,gca就是get current axes的意思
#先获取当前轴,便于下一步移动,作出你想要的效果。
ax1 = plt.gca()

#构造mask,去除重复数据显示
#返回一个类似形状的元素全为0的矩阵,详见博客
mask = np.zeros_like(df_coor)
print('step1')
print(mask)
#把这个全0元素矩阵的上三角部分赋值为1(也就是true)
mask[np.triu_indices_from(mask)] = True
#用一个mask2 来接收  这个 上三角元素都为1的矩阵
print('step2')
print(mask)
mask2 = mask
# 从这开始 我也看不懂了 每一步都知道啥意思,但是连起来就不知道了
#但是不影响,每次运行完 我加一个print语句输出这个mask是啥,这样就清晰了
mask = (np.flipud(mask)-1)*(-1)
print('step3')
print(mask)
mask = np.rot90(mask,k = -1)
print('step4-------')
print(mask)

im1 = sns.heatmap(df_coor,annot=True,cmap="RdBu"
, mask=mask#构造mask,去除重复数据显示
,vmax=1,vmin=-1
, fmt='.2f',ax = ax1)

ax1.tick_params(axis = 'both', length=0)
#此处填写保存文件的路径
plt.savefig(r'F:\PostGraduate\PaperReproduction\数据处理\OwnData\相关性\r_demo.png',dpi=600)
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值