可视化篇(五)——— python绘制热力图及案例

  • 摘要
  • 效果图
  • python代码

摘要

本文演示了如何通过python绘制热力图,并给出了其应用于展示数据之间相关性的案例供读者参考。

效果图

python代码

from matplotlib import font_manager
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pdclass CyrusPlot(object):def __init__(self,dpi=72,fig_size=[30,20]):"""实列化该类,然后直接调用cyrus_heat_map方法:param dpi::param fig_size:"""self.dpi = dpiself.fig_size = fig_sizeself.font = font_manager.FontProperties(fname="C:\Windows\Fonts\simhei.ttf", size=30)def cyrus_heat_map(self,datas,x_ticks = [],y_ticks = [],bar_label = "bar label",show = True,save_name = ""):figure = plt.figure(figsize=self.fig_size, dpi=self.dpi)ax = figure.add_subplot(111)if not x_ticks:x_ticks = ["x"+str(i) for i in range(datas.shape[1])]y_ticks = ["y" + str(i) for i in range(datas.shape[0])]im, _ = self.heatmap(np.array(datas), x_ticks, y_ticks,cmap="RdBu", cbarlabel=bar_label,ax=ax)  # plt.cm.RdBu   PuOrself.annotate_heatmap(im, valfmt="{x:.2f}", size=16)if save_name:plt.savefig("./figure/" + save_name + ".jpg")if show:plt.show()def heatmap(self,data, row_labels, col_labels, ax=None,cbar_kw={}, cbarlabel="", **kwargs):if not ax:ax = plt.gca()im = ax.imshow(data, **kwargs)cbar = ax.figure.colorbar(im, ax=ax, **cbar_kw)cbar.ax.set_ylabel(cbarlabel, rotation=-90, va="bottom",fontproperties=font_manager.FontProperties(fname="C:\Windows\Fonts\simhei.ttf", size=30))ax.set_xticks(np.arange(data.shape[1]))ax.set_yticks(np.arange(data.shape[0]))ax.set_xticklabels(col_labels,fontproperties=self.font)ax.set_yticklabels(row_labels,fontproperties=self.font)ax.tick_params(top=True, bottom=False,labeltop=True, labelbottom=False)plt.setp(ax.get_xticklabels(), rotation=-30, ha="right",rotation_mode="anchor")for edge, spine in ax.spines.items():spine.set_visible(False)ax.set_xticks(np.arange(data.shape[1] + 1) - .5, minor=True)ax.set_yticks(np.arange(data.shape[0] + 1) - .5, minor=True)ax.grid(which="minor", color="w", linestyle='-', linewidth=3)ax.tick_params(which="minor", bottom=False, left=False)return im, cbardef annotate_heatmap(self,im, data=None, valfmt="{x:.2f}",textcolors=("black", "white"),threshold=None, **textkw):if not isinstance(data, (list, np.ndarray)):data = im.get_array()if threshold is not None:threshold = im.norm(threshold)else:threshold = im.norm(data.max()) / 2.kw = dict(horizontalalignment="center",verticalalignment="center",)kw.update(textkw)if isinstance(valfmt, str):valfmt = matplotlib.ticker.StrMethodFormatter(valfmt)texts = []for i in range(data.shape[0]):for j in range(data.shape[1]):kw.update(color=textcolors[abs(data[i, j]) > 0.5])text = im.axes.text(j, i, valfmt(data[i, j], None), **kw)texts.append(text)return texts

实列化该类,然后直接调用cyrus_heat_map方法。

if __name__ == '__main__':# 构造数据集并计算其pearson相关系数data = pd.DataFrame(np.random.randn(10,10))pearson = data.corr()plot_tool = CyrusPlot()plot_tool.cyrus_heat_map(pearson,show=True)

by CyrusMay 2021 01 27

看过多少脸庞
飞过多少异乡
少年早已苍茫
少年早已苍茫
回头望
回头望
我在何方
——————五月天(成名在望)——————

可视化篇(五)——— python绘制热力图及案例相关推荐

  1. Python 绘制热力图

    Python绘制热力图 reference 目标:绘制如下的 hotmap 或者 density-map ,把坐标和hot-value或者density-value替换为自己的数据,稍微改进就可以绘制 ...

  2. 【画图】Python绘制热力图方法以及保存不全问题(seaborn.heatmap)

    0 前言 鉴于Matlab画图已经被封,自此画图战线全部转移到Python上来,这篇博客描述了Python画热力图的方法以及我踩到的坑. 1 程序 1.1 导入包 这里使用seaborn的heatma ...

  3. Python学习篇(五) Python中的循环

    文章目录 前言 一.range函数 二.while循环 2.1四步循环法 三.for in 循环 四.流程控制语句 4.1 break 4.2 continue 五.else语句 六.嵌套循环 七.二 ...

  4. Python绘制热力图

    最近在建模时有绘制相关系数矩阵热力图的需要,在此记录一下热力图的基本使用 这里使用seaborn库中的的heatmap完成热力图的绘制,我们可以根据图中不同方块颜色来判断变量之间相关系数的大小,接下来 ...

  5. python高维向量的可视化_用Python绘制多维向量

    从这个问题上很难确定我的答案是否相关,但这里是我最好的猜测.我相信DeltasScience是在问多维向量通常是如何绘制到二维空间的,就像散点图一样.我认为最好的答案是通常会执行某种降维算法.换句话说 ...

  6. 可视化实战,Python绘制出来的数据大屏真的太惊艳了!!

    今天我们在进行一个Python数据可视化的实战练习,用到的模块叫做Panel,我们通过调用此模块来绘制动态可交互的图表以及数据大屏的制作,而本地需要用到的数据集,可在kaggle上面获取 https: ...

  7. Python 绘制热力图参数详解

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 参数设置: (1)热力图输入数据参数: data:矩阵数据集,可以是numpy的数组(array),也可以是pan ...

  8. 使用 Python 绘制中秋月饼案例,大家中秋节快乐

    文章目录 2022.9.10 既是中秋节又是教师节,在这里祝大家阖家团圆,中秋快乐,也祝天下的老师桃李满园,教师节快乐!这里为大家呈现上一个 Python 小项目 -- 使用 turtle 绘制月饼. ...

  9. python相关系数热力图_python绘制热力图heatmap

    本文实例为大家分享了python绘制热力图的具体代码,供大家参考,具体内容如下 python的热力图是用皮尔逊相关系数来查看两者之间的关联性. #encoding:utf-8 import numpy ...

最新文章

  1. oracle数据库连接设置配置文件
  2. PHP Include 文件
  3. API for org.eclipse.paho.client.mqttv3
  4. pytorch 查看gpu cuda版本
  5. PHP中全局变量$_POST[]和$_GET[]
  6. Oracle procedure调用实例
  7. lua中清空目录和递归创建目录
  8. 【Espruino】NO.12 加速度传感器演示
  9. win7磁盘设置背景方法
  10. 2021牛客暑期多校训练营7 xay loves trees dfs序 + 主席树
  11. python关闭文件的函数_python打开与关闭文档
  12. 计算机创建文档教案,计算机基础知识教案
  13. 2月21 深度优先与广度优先
  14. 190217每日一句
  15. python循环引用例子_魔幻离现实仅一步之遥:细说Python的循环调用、循环引用和循环导入...
  16. 谁负责本单位的各部门计算机,关于加强计算机校园网管理的若干认识
  17. 钉钉直播html,钉钉直播功能介绍,钉钉直播步骤详情
  18. Unity内置管线Projector原理分析
  19. 泛微平台ecology8.0二进制文件流下载对接接口
  20. 248 中心对称数 III

热门文章

  1. 1 分钟教会你用 Spring Boot 发邮件
  2. SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
  3. Java 向上类型转换与向下类型转换的理解【复习】
  4. Git 报错 Push to origin/master was rejected
  5. IDEA打开vue项目,每次打开的都是上一次的vue项目,即同一个vue项目,解决方法
  6. 通过MyBatis查找一张表的数据,某些字段的值为空
  7. Android --- .gradle文件夹的路径
  8. 单片机彩灯移动实验_单片机课程设计彩灯实验.doc
  9. 成功解决 ValueError: fill value must be in categories
  10. 成功解决极其刁钻bug之TypeError: ‘<=‘ not supported between instances of ‘list‘ and ‘int‘