参考

文章目录

  • 数据样本和分析结果
  • 代码的讲解
  • 附代码和运行结果

数据样本和分析结果

本学渣补充数学知识点:
1 Pearson Correlation(皮尔逊相关系数),详见

这里我自己先创建一个表格,

重点关注A和B,因为我输入的时候是线性相关的,
CDE 三个栏完全随机,
F 和 G 有一定相关性,但是不如A和B那么明显,
H,I,J 也是乱输入的完全随机。

给出两个代码结果,分别是
给出显著性和不给出显著性的运行结果:
运行一下看看:
不给出显著性的结果:

给出显著性的结果:

两个图对比发现图二多了一些星星
代表相关性等级,F和G 的相关性没有A和B高,这和我之前预想的结果一样。

代码的讲解

下面用到的基础知识和函数参数补充:

  • pandas——相关系数函数corr(),可选参数(不加默认第一个)代表不同的相关性系数。
    本例代码中用法按默认来的, df_coor=df.corr()返回值是一个相关系数的矩阵
    API详见
  • 相关系数的数学公式补充
  • plt.figure()参数 说明
  • 注意 重点: plt.gca() 获取当前坐标轴,目的是为了便于下一步的移动,效果如下图,感觉秀婷学姐的图可以用这个函数画,具体怎么移动的代码,详见知乎大佬,我下个代码专门琢磨一下帮秀婷学姐搞一搞
  • np.zeros_like(),返回一个和传入的矩阵 形状一样,但是值全为0的矩阵,详见
  • np.triu_indices_from(mask):返回方阵的上三角矩阵的索引,API详见,具体用法
  • np.flipud() 用于翻转列表,将矩阵进行上下翻转,详见
  • np.rot90()将矩阵img逆时针旋转90°
  • sns.heatmap()这里的参数除了data以外,其他的都有默认值,所以首先会用基础的,知道怎么传递data是第一步。详见
  • 补充一个sns.heatmap()函数用到的参数mask:用于突出显示某些数据,详见
  • ax1.tick_params()参数,both 是指对横轴和纵轴都操作,后面的参数是长度,其余参数详见

mask那一坨代码完成了两件事:
1 去重
2 去掉一半的矩阵,如果不去掉的效果类似这样

或者这样

去掉一半显得更加简洁明了

附代码和运行结果

代码:


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 mpldef cm2inch(x,y):return x/2.54,y/2.54size1 = 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'E:\data\test.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'E:\data\r_demo.png',dpi=600)
plt.show()

运行结果:

step1
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
step2
[[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.][0. 1. 1. 1. 1. 1. 1. 1. 1. 1.][0. 0. 1. 1. 1. 1. 1. 1. 1. 1.][0. 0. 0. 1. 1. 1. 1. 1. 1. 1.][0. 0. 0. 0. 1. 1. 1. 1. 1. 1.][0. 0. 0. 0. 0. 1. 1. 1. 1. 1.][0. 0. 0. 0. 0. 0. 1. 1. 1. 1.][0. 0. 0. 0. 0. 0. 0. 1. 1. 1.][0. 0. 0. 0. 0. 0. 0. 0. 1. 1.][0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]
step3
[[ 1.  1.  1.  1.  1.  1.  1.  1.  1. -0.][ 1.  1.  1.  1.  1.  1.  1.  1. -0. -0.][ 1.  1.  1.  1.  1.  1.  1. -0. -0. -0.][ 1.  1.  1.  1.  1.  1. -0. -0. -0. -0.][ 1.  1.  1.  1.  1. -0. -0. -0. -0. -0.][ 1.  1.  1.  1. -0. -0. -0. -0. -0. -0.][ 1.  1.  1. -0. -0. -0. -0. -0. -0. -0.][ 1.  1. -0. -0. -0. -0. -0. -0. -0. -0.][ 1. -0. -0. -0. -0. -0. -0. -0. -0. -0.][-0. -0. -0. -0. -0. -0. -0. -0. -0. -0.]]
step4-------
[[-0.  1.  1.  1.  1.  1.  1.  1.  1.  1.][-0. -0.  1.  1.  1.  1.  1.  1.  1.  1.][-0. -0. -0.  1.  1.  1.  1.  1.  1.  1.][-0. -0. -0. -0.  1.  1.  1.  1.  1.  1.][-0. -0. -0. -0. -0.  1.  1.  1.  1.  1.][-0. -0. -0. -0. -0. -0.  1.  1.  1.  1.][-0. -0. -0. -0. -0. -0. -0.  1.  1.  1.][-0. -0. -0. -0. -0. -0. -0. -0.  1.  1.][-0. -0. -0. -0. -0. -0. -0. -0. -0.  1.][-0. -0. -0. -0. -0. -0. -0. -0. -0. -0.]]

python科研作图系列-01热力图相关性分析相关推荐

  1. 用python分析小说_用Python对哈利波特系列小说进行情感分析

    原标题:用Python对哈利波特系列小说进行情感分析 准备数据 现有的数据是一部小说放在一个txt里,我们想按照章节(列表中第一个就是章节1的内容,列表中第二个是章节2的内容)进行分析,这就需要用到正 ...

  2. python ai 教学_【Python AI教学】从零开始学Python AI开发系列01

    原标题:[Python AI教学]从零开始学Python AI开发系列01 欢迎开启新的旅程. 从2016年开始,AI人工智能的热潮扑面而来.而在机器学习和深度学习领域,Python位于最受欢迎的编程 ...

  3. r语言 相关性作图_R绘图:相关性分析与作图

    公众号"生信小课堂" TCGA数据分析课程:生物信息学教学 相关性分析是我们生信分析中必不可少的技能,单基因的批量相关性分析,可以用于做单基因的GO,KEGG富集分析和GSEA分析 ...

  4. 实战三十九:鲍鱼年龄预测热力图相关性分析

    首先是数据: Sex,Length,Diameter,Height,Whole,Shucked,Viscera,Shell,Rings M,0.455,0.365,0.095,0.514,0.2245 ...

  5. 用 Python 对数据进行相关性分析

    在进行数据分析时,我们所用到的数据往往都不是一维的,而这些数据在分析时难度就增加了不少,因为我们需要考虑维度之间的关系.而这些维度关系的分析就需要用一些方法来进行衡量,相关性分析就是其中一种.本文就用 ...

  6. PPT科研作图①——生成发表级别的高清图片

    看到以上这两张图,你也许不能相信,他们都是用PPT做的!科研作图的重要性我们几次都有讲到,希望各位小伙伴要加强这个意识,在科研作图板块,我们有浩然大神的数据处理和科研作图系列,最近Kathy童靴又将给 ...

  7. Python使用matplotlib可视化相关性分析热力图图heatmap、使用seaborn中的heatmap函数可视化相关性热力图(Correllogram)

    Python使用matplotlib可视化相关性分析热力图图heatmap.使用seaborn中的heatmap函数可视化相关性热力图(Correllogram) 目录

  8. python可视化lassocv特征筛选之后的特征的相关性分析热力图

    python可视化lassocv特征筛选之后的特征的相关性分析热力图 目录 python可视化lassocv特征筛选之后的特征的相关性分析热力图 #lassocv模型

  9. python相关性分析_python实践统计学中的三大相关性系数,并绘制相关性分析的热力图...

    本文首发地址: https://yishuihancheng.blog.csdn.net/article/details/83547648 欢迎关注我的博客[Together_CZ],我是沂水寒城! ...

最新文章

  1. Handler消息机制(十):HandlerThread源码解析
  2. java投票输出票数最高前三名,给你喜欢的作品投票,票数前三名获本平台赠送书一本。|诗花朵朵...
  3. ActiveMQ;RabbitMQ;ZeroMQ
  4. Struts2基础学习总结
  5. springMVC-配置Bean
  6. 【转载】 three.js 相机camera位置属性设置详解
  7. JAVA动态绑定浅析
  8. GOF设计模式——工厂模式
  9. 流畅的python(一)python数据模型
  10. 计算机网络——自顶向下
  11. ERP初学者入门自学笔记
  12. 有哪些公共管理或行政管理学习帮助较大的外文期刊?
  13. Google Play 开发者账户被封
  14. Win10笔记本开启热点让手机上网
  15. Either类java_通过实例学习Either 树和模式匹配
  16. 基于Python的招聘信息可视化分析研究
  17. 最简单可靠的机房温度电话报警
  18. 移植facenet pb模型到android
  19. 嵌入式linux环境取得U盘容量等信息的方法
  20. LOL中那些不可错过的精彩对局!!!

热门文章

  1. C++ 字元陣列(C-style)、字元指標、String類別 使用方式整理
  2. WinMerge的使用(代码相同却提示有差异)。
  3. TypeScript-打包
  4. matlab三维重建中将灭点坐标反归一化,基于灭点查找的姿态角测量方法在路面三维重建中的应用...
  5. 每日刷题之数独简单版 AcWing 1613
  6. ListView的增删改查(实战)
  7. 对标阿里P6-P7高级Java程序员的进阶技术路线
  8. P4218 [CTSC2010]珠宝商
  9. 限时免费!2016杭州云栖大会抢票指南
  10. 计算器程序java开方运算_模拟计算器java程序