python使用matplotlib绘制热图

yipeiwu_com5年前Python基础

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设计】。

相关文章

Python import用法以及与from...import的区别

在python用import或者from...import来导入相应的模块。模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入...

python 专题九 Mysql数据库编程基础知识

python 专题九 Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的;同时在WAMP(Windows、Apache、MySQL、PHP或Python)开发网站中,也可以...

Python SVM(支持向量机)实现方法完整示例

Python SVM(支持向量机)实现方法完整示例

本文实例讲述了Python SVM(支持向量机)实现方法。分享给大家供大家参考,具体如下: 运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所...

详解python中的文件与目录操作

详解python中的文件与目录操作 一 获得当前路径 1、代码1 >>>import os >>>print('Current directo...

Python实现通过继承覆盖方法示例

本文实例讲述了Python实现通过继承覆盖方法。分享给大家供大家参考,具体如下: Python真是太动态了,所有的方法默认都是虚的。子类定义父类同名函数之后,父类函数被覆盖。 cla...