seaborn本质上是对matplotlib模块的高级封装,所以要想使用seaborn的功能,首先需要安装好matplotlib的基础环境,现在的安装方式已经极大地简化了,只需要pip安装即可,这里就不再多说明了。

今天主要是想对手里的一个数据集进行简单的分析,分析不同属性特征之间的相关程度,相关性的计算有很多种方法,比如我最常用的就是基于统计学习里面的三大指数来进行计算,主要包括:皮尔森系数、肯德尔系数和斯皮尔曼系数。相关性的计算结果可以通过seaborn来进行直观的展示,接下来我们来看一下具体的代码实现,首先是数据加载部分:

def Demo(data_list,savepath='relation.png'):'''数据加载。解析、可视化'''matrix=[]A=[one[2] for one in data_list]B=[one[3] for one in data_list]C=[one[4] for one in data_list]D=[one[5] for one in data_list]E=[one[6] for one in data_list]F=[one[7] for one in data_list]G=[one[8] for one in data_list]matrix=[A,B,C,D,E,F,G]label=['O3','Water','Temp','Humi','See','WS','WD']relationAnalysis(matrix,label,flag='P',savepath=savepath)

接下来是具体的绘图代码实现,如下所示:

def relationAnalysis(matrix,label,flag='P',savepath='relation/heatmap_pearson.png'):'''matrix:不同属性的数据矩阵label:不同因子名称'''all_res=[]for i in range(len(matrix)):one_tmp=[]vector1=matrix[i]for j in range(len(matrix)):vector2=matrix[j]a=pearsonr(vector1,vector2)[0]b=spearmanr(vector1,vector2)[0]c=kendalltau(vector1,vector2)[0]if flag=='P':one_tmp.append(a)elif flag=='S':one_tmp.append(b)elif flag=='K':one_tmp.append(c)else:one_tmp.append((a+b+c)/3)all_res.append(one_tmp)heapMapPlot(all_res,label,savepath=savepath)

接下来是热力图绘制函数:

def heapMapPlot(data,key_list,savepath='relation/heatmap.png'):'''基于相关性系数计算结果来绘制热力图'''colormap=plt.cm.RdBudata=np.array(data)fig,ax=plt.subplots(figsize=(12,12))#不指定颜色带的色系# sns.heatmap(pd.DataFrame(np.round(data,4),columns=key_list,index=key_list),annot=True,vmax=1,vmin=0,#             xticklabels=True,yticklabels=True,square=True)#指定颜色带的色系# sns.heatmap(pd.DataFrame(np.round(data,4),columns=key_list,index=key_list),annot=True,vmax=1,vmin=0,#             xticklabels=True,yticklabels=True,square=True,cmap="YlGnBu")#指定颜色带的色系# sns.heatmap(pd.DataFrame(np.round(data,4),columns=key_list,index=key_list),annot=True,vmax=1,vmin=0,#             xticklabels=True,yticklabels=True,square=True,cmap="RdBu_r")#指定网格间距# sns.heatmap(pd.DataFrame(np.round(data,4),columns=key_list,index=key_list),annot=True,vmax=1,vmin=0,#             xticklabels=True,yticklabels=True,square=True,linewidths=0.3,cmap="RdBu_r")#指定网格间距+间距颜色sns.heatmap(pd.DataFrame(np.round(data,4),columns=key_list,index=key_list),annot=True,vmax=1,vmin=0,xticklabels=True,yticklabels=True,square=True,linewidths=1,linecolor="green",cmap="RdBu_r")#sns.heatmap(DataFrame.astype(float),linewidths=0.1,vmax=1.0, square=True, cmap=colormap, linecolor='white', annot=True)plt.title('factorDataAnalysis')plt.savefig(savepath)

上面的代码中,我们给出来了几种不同形式的实现,接下来我们来看一下具体的结果:
不指定颜色带色系的结果图:

指定颜色带色系的结果图:

指定网格间距的结果图:

指定网格间距+颜色的结果图:

当然了,参照官方的API接口还有很多有意思的组合和参数可以去设置和使用,这里给出来了几种比较常用的方式,感兴趣的话可以拿去试试。

基于seaborn的相关性热力图可视化分析相关推荐

  1. R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

    R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战 目录 R语言相关性计算及使用ggcorrplot包相关性分析热力图可视化分析实战

  2. 基于Qt的A*算法可视化分析

    代码地址如下: http://www.demodashi.com/demo/13677.html 需求 之前做过一个无人车需要自主寻找最佳路径,所以研究了相关的寻路算法,最终选择A算法,因为其简单易懂 ...

  3. 基于数据挖掘的疾病数据可视化分析与预测系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 随着医院信息系统(HIS)在全国各大医院的推广和应用,会有大量和病人相关的临床数据每天在医院中记录, ...

  4. matlab传热分析,基于matlab的超临界流体对流传热可视化分析方法

    基于matlab的超临界流体对流传热可视化分析方法 [技术领域] [0001]本发明涉及一种基于MATLAB的管内超临界流体对流传热可视化分析方法,属于MATLAB应用技术领域. [背景技术] [00 ...

  5. 基于 Python 的招聘信息可视化分析系统

    温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目简介 本项目利用 Python 从某招聘网站抓取海量招聘数据,进行数据清洗和格式化后存储到关系型数据库中( ...

  6. python气象绘图速成_基于Python气象数据处理与可视化分析

    基于 Python 气象数据处理与可视化分析 张鑫 ; 曹蕾 ; 韩基良 [期刊名称] <气象灾害防御> [年 ( 卷 ), 期] 2020(027)001 [摘要] 全国综合气象信息共享 ...

  7. 基于python的电影数据可视化分析与推荐系统

    温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从国外某电影网站和国内某电影评论网站采集电影数据,并对电影数据进行可视化分析, ...

  8. 基于flask徐州市天气信息可视化分析系统-计算机毕设 附源码 04600

    基于flask徐州市天气信息可视化分析系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最 ...

  9. Python 基于pyecharts自定义经纬度热力图可视化

    背景 在业务数据统计分析中基本都会涉及到各省区的分析,数据可视化是数据分析的一把利器,这些省区的数据一般会用地图可视化出来,这样一些规律可以被一面了然发现 地图有很多可视化类型,比如:基本地理图.热力 ...

  10. 基于猫眼票房数据的可视化分析

    图片来源于网络,文/AJ-Gordon 案例背景:由于最近<哪吒之魔童降世>的火爆,最新票房已经超过49亿,使我对国内票房的整体走势有了很大兴趣,究竟49亿的票房数据,在国内是处于一个什么 ...

最新文章

  1. Elasticsearch上手——熟悉基本操作
  2. java 调用服务器文档,JAVA远程调用服务器端方法
  3. 什么是mysql的游标_数据库中的游标到底是什么意思
  4. php函数、php定义数组和数组遍历
  5. Focal Loss 分类问题 pytorch实现代码(简单实现)
  6. java mysql 输入数据库_如何用JAVA录入数据到SQL数据库
  7. 【第158期】游戏策划:给@zhang的简历分析
  8. FastAPI中Jinjia2使用
  9. word||标题序号和标题内容间隔很大
  10. AD单片机九齐单片机NY8B062D SOP16九齐
  11. Aspack壳手动脱壳
  12. AI算法可帮助因气候变化而流离失所的数百万难民找到新家了!
  13. d3.js v5 数据加载
  14. 人工智能领域中的一个重要方向:自然语言处理
  15. python 选手比赛模拟
  16. 作业十一:安装关系型数据库MySQL
  17. 阿里和亚马逊的云战争:云计算正在成为新一代商业基础设施
  18. win10局域网下利用 FlieZilla 搭建FTP服务器,实现手机平板用nplayer直接看电脑内的视频
  19. 【C++ 程序】 判断是否构成三角形
  20. Golang实现布隆过滤器

热门文章

  1. centos 6.5 安装 phpmyadmin
  2. c++中模板的实现(模板类和模板函数)
  3. MySQL如何按天统计数据,没有记录的天自动补充0
  4. JVM Specification 9th Edition (4) Chapter 3. Compiling for the Java Virtual Machine
  5. POI--HSSFCell类
  6. VMware vSphere Update Manager 5.0
  7. How to install and configure vsftpd
  8. Netscreen ×××配置(一)---基于策略的点到点×××设置
  9. java byte数组与16进制间的相互转换
  10. 记录这两天所学的东西