python使用matplotlib绘制热图


Posted in Python onNovember 07, 2018

python常用的绘图库就是matplotlib,今天在给公司绘图时,偶然间发现matplotlib可以绘制热图,并且十分简洁,拿出来跟大家分享一下。(由于涉及到公司数据问题,这里采用随机数生成数据进行实验)

import random
from matplotlib import pyplot as plt
from matplotlib import cm
from matplotlib import axes
from matplotlib.font_manager import FontProperties
font = FontProperties(fname='/Library/Fonts/Songti.ttc')
 
def draw():
 #定义热图的横纵坐标
 xLabel = ['A','B','C','D','E']
 yLabel = ['1','2','3','4','5']
 
 #准备数据阶段,利用random生成二维数据(5*5)
 data = []
 for i in range(5):
  temp = []
  for j in range(5):
   k = random.randint(0,100)
   temp.append(k)
  data.append(temp)
 
 #作图阶段
 fig = plt.figure()
 #定义画布为1*1个划分,并在第1个位置上进行作图
 ax = fig.add_subplot(111)
 #定义横纵坐标的刻度
 ax.set_yticks(range(len(yLabel)))
 ax.set_yticklabels(yLabel, fontproperties=font)
 ax.set_xticks(range(len(xLabel)))
 ax.set_xticklabels(xLabel)
 #作图并选择热图的颜色填充风格,这里选择hot
 im = ax.imshow(data, cmap=plt.cm.hot_r)
 #增加右侧的颜色刻度条
 plt.colorbar(im)
 #增加标题
 plt.title("This is a title", fontproperties=font)
 #show
 plt.show()
 
d = draw()

效果图如下:

python使用matplotlib绘制热图

为了更清晰地看出二维数值矩阵与热图之间的对应关系,我们输出二维矩阵:

[[17, 96, 11, 99, 83], [18, 17, 58, 18, 80], [87, 79, 15, 53, 4], [86, 53, 48, 36, 23], [25, 4, 94, 100, 71]]

从对应关系我们可以看出,图像的左上角为坐标原点,第一行对应的二维矩阵中的第一行数据,以此类推。
同时我们可以看出数值越大的单元,对应热图中的颜色越深。其实这是一个可选项,只需要改变im = ax.imshow(data, cmap=plt.cm.hot_r)中的参数cmap为hot_r,其中_r的意思是就是按照颜色越深,数值越大,如果想数值越大,颜色越浅,只需要去掉_r,直接为hot就行。同时这个hot是热图配色的其中一个主题,主题色参数可选:

  • hot 从黑平滑过度到红、橙色和黄色的背景色,然后到白色。
  • cool 包含青绿色和品红色的阴影色。从青绿色平滑变化到品红色。
  • gray 返回线性灰度色图。
  • bone 具有较高的蓝色成分的灰度色图。该色图用于对灰度图添加电子的视图。
  • white 全白的单色色图。
  • spring 包含品红和黄的阴影颜色。
  • summer 包含绿和黄的阴影颜色。
  • autumn 从红色平滑变化到橙色,然后到黄色。
  • winter 包含蓝和绿的阴影色。

右侧的颜色刻度条colorbar也是可选的,如果不写就不会显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现的tab文件操作类分享
Nov 20 Python
python计算方程式根的方法
May 07 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
python数据类型_字符串常用操作(详解)
May 30 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python 下载文件的多种方法汇总
Nov 17 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
pandas抽取行列数据的几种方法
Dec 13 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 Python
python中pandas对多列进行分组统计的实现
Jun 18 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 #Python
Python将一个Excel拆分为多个Excel
Nov 07 #Python
python计算两个矩形框重合百分比的实例
Nov 07 #Python
numpy 计算两个数组重复程度的方法
Nov 07 #Python
python中for循环输出列表索引与对应的值方法
Nov 07 #Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 #Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 #Python
You might like
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
监控 url fragment变化的js代码
2010/04/19 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
Javascript中克隆一个数组的实现代码
2013/12/06 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
jQuery stop()用法实例详解
2016/07/28 Javascript
javascript如何创建对象
2016/08/29 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
layui分页效果实现代码
2017/05/19 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
js实现简单音乐播放器
2020/06/30 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
Jowissa官方网站:瑞士制造的手表,优雅简约的设计
2020/07/29 全球购物
Linux的主要特性
2016/09/03 面试题
小区门卫工作职责
2013/12/14 职场文书
党支部创先争优活动总结
2014/08/28 职场文书
入党转正申请报告
2015/05/15 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android