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集合类型用法分析
Apr 08 Python
python处理大数字的方法
May 27 Python
理解python正则表达式
Jan 15 Python
Python连接DB2数据库
Aug 27 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
python flask中静态文件的管理方法
Mar 20 Python
Python面向对象类继承和组合实例分析
May 28 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
如何在Python中妥善使用进度条详解
Apr 05 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
smarty内置函数section的用法
2015/01/22 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
简单的js表格操作
2016/09/24 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
Python基础教程之正则表达式基本语法以及re模块
2016/03/25 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
2020/04/08 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
英格兰足协官方商店:England Store
2019/07/12 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
留学推荐信写作指南
2014/01/25 职场文书
家长对老师的感言
2014/03/11 职场文书
英语故事演讲稿
2014/04/29 职场文书
环保建议书600字
2014/05/14 职场文书
初一新生军训方案
2014/05/22 职场文书
计生专干事迹
2014/05/28 职场文书
三八活动策划方案
2014/08/17 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
文明倡议书
2015/01/19 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
python_tkinter弹出对话框创建
2022/03/20 Python