python使用matplotlib绘制热图

 更新时间:2018年11月07日 14:16:56   作者:coder_Gray  
这篇文章主要为大家详细介绍了python使用matplotlib绘制热图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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()

效果图如下:

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

[[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--字典(dict)和集合(set)详解

    python--字典(dict)和集合(set)详解

    本文通过实例给大家介绍了python中字典和集合的知识小结,非常不错,具有参考借鉴价值,需要的的朋友参考下吧,希望能够给你带来帮助
    2021-09-09
  • python matplotlib绘图详解大全(非常详细!)

    python matplotlib绘图详解大全(非常详细!)

    这篇文章主要给大家介绍了关于python matplotlib绘图详解的相关资料,matplotlib是python中用于绘制各种图像的模块,功能十分强大,通常与pandas模块搭配使用,可以生成各种样视的图片,用于数据的分析和展示,需要的朋友可以参考下
    2023-09-09
  • 基于tensorflow __init__、build 和call的使用小结

    基于tensorflow __init__、build 和call的使用小结

    这篇文章主要介绍了基于tensorflow __init__、build 和call的使用小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Python基础中所出现的异常报错总结

    Python基础中所出现的异常报错总结

    本篇文章介绍了Python基础中所出现的异常报错总结,这是Python日常所常见的错误,现在总结出来给大家。
    2016-11-11
  • python自动结束mysql慢查询会话的实例代码

    python自动结束mysql慢查询会话的实例代码

    这篇文章主要介绍了python自动结束mysql慢查询会话,主要涉及到了mysql慢查询会话查询,定时任务的相关知识,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2019-10-10
  • 使用Python快速实现文件共享并通过内网穿透技术公网访问

    使用Python快速实现文件共享并通过内网穿透技术公网访问

    数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用,对于个人用户也有很强的实用意义,今天,笔者就为大家介绍,如何使用python这样的简单程序语言,在自己的电脑上搭建一个共享文件服务器,需要的朋友可以参考下
    2023-10-10
  • Django如何实现RBAC权限管理

    Django如何实现RBAC权限管理

    这篇文章主要介绍了Django如何实现RBAC权限管理问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 对python判断ip是否可达的实例详解

    对python判断ip是否可达的实例详解

    今天小编就为大家分享一篇对python判断ip是否可达的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python在不同层级目录import模块的方法

    python在不同层级目录import模块的方法

    这篇文章主要介绍了python 在不同层级目录import 模块的方法,需要的朋友可以参考下
    2016-01-01
  • 深入理解Python异常处理的哲学

    深入理解Python异常处理的哲学

    这篇文章主要给大家介绍了关于Python异常处理的哲学,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02

最新评论