手把手教你用python绘制热度图(heatmap)
作者:黄思博呀 发布时间:2023-07-01 21:03:03
标签:python,热力图,heatmap
1、简单的代码
from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
#练习的数据:
data=np.arange(25).reshape(5,5)
data=pd.DataFrame(data)
#绘制热度图:
plot=sns.heatmap(data)
plt.show()
查看效果:
2、添加X轴和Y轴标签和标题:
plt.xlabel("X",size=20)
plt.ylabel("Y",size=20,rotation=0)
plt.title("heatmap",size=20)
查看效果:
3、对右侧的色条(colorbar)进行调整:
在heatmap里添加关键字参数cbar_kws,这个参数对应是一个字典,字典的内容传递给类Colorbar。这个类就是被调用来绘制色条的。
from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
#练习的数据:
data=np.arange(-18,18).reshape(6,6)
data=pd.DataFrame(data)
#设置色条的刻度:
tick_=np.arange(-20,20,5).astype(float)
#编辑做为参数的字典:
dict_={'orientation':'vertical',"label":"color \
scale","drawedges":True,"ticklocation":"top","extend":"min", \
"filled":True,"alpha":0.8,"cmap":"cmap","ticks":tick_}
#将字典传入给参数cbar_kws:
cmap=sns.heatmap(data,cbar_kws=dict_,center=0)
#添加标题和标签:
plt.xlabel("X",size=20)
plt.ylabel("Y",size=20,rotation=0)
plt.title("heatmap",size=20)
plt.show()
查看效果:
这里的orientation(定位)参数对应的参数值有vertical(垂直)和 horizontal(水平),可以调整色条的放置状态,ticks参数传递色条的刻度值。
4、修改色条的刻度值和标签的字体大小、颜色:
在Colorbar类里,没有直接的参数可以调整刻度字体的大小,所以无法通过关键字参数cbar_kws进行调整刻度字体大小。
但是可以调用Colorbar的ax类进行调整:
#调用Colorbar类:
cbar = cmap.collections[0].colorbar
#利用Colorbar类的axis类的方法,修改刻度大小和设置刻度颜色
cbar.ax.tick_params(labelsize=20,labelcolor="blue")
这里的cmap是用sns.heatmap()函数绘制热度图时赋予的对象
这里的关键步骤是cbar = cmap.collections[0].colorbar
得到的cbar.ax变量是matplotlib.axes._subplots.AxesSubplot类,和cmap变量一致
这里的cbar.ax连接到matplotlib.axis类,可以使用后者的方法
#修改色条标签的字体大小:
cbar.ax.ylabel(ylabe="color scale",size=20,color="red",loc="center")
plt.show()
查看效果:
实际上,这副热度图可以看做是两张图,左侧的热度图和右侧的色条。
5、对热度图显示数值和添加网格线:
from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd
from matplotlib import colorbar
#练习的数据:
data=np.arange(-18,18).reshape(6,6)
data=pd.DataFrame(data)
#绘制热度图:
tick_=np.arange(-20,20,5).astype(float)
dict_={'orientation':'vertical',"label":"color \
scale","drawedges":True,"ticklocation":"right","extend":"min", \
"filled":True,"alpha":0.8,"cmap":"cmap","ticks":tick_,"spaci,linewidths=0.5ng":'proportional'}
#绘制添加数值和线条的热度图:
cmap = sns.heatmap(data,linewidths=0.8,annot=True,fmt="d")
plt.xlabel("X",size=20)
plt.ylabel("Y",size=20,rotation=0)
plt.title("heatmap",size=20)
#调整色带的标签:
cbar = cmap.collections[0].colorbar
cbar.ax.tick_params(labelsize=20,labelcolor="blue")
cbar.ax.set_ylabel(ylabel="color scale",size=20,color="red",loc="center")
plt.show()
查看效果:
6、 定义热度图的配色板
利用heatmapL里的参数cmap,较好看的参数有“YlGnBu”和“BuPu_r”:
要知道cmap有哪些参数,报一次错就可以了。
#练习的数据:
data=np.arange(-18,18).reshape(6,6)
flights=pd.DataFrame(data)
#设置一个1行2列的画图:
fig,ax=plt.subplots(1,2)
sns.heatmap(flights, cmap="YlGnBu",ax=ax[0])
sns.heatmap(flights, cmap="BuPu_r",ax=ax[1])
plt.show()
查看效果:
来源:https://blog.csdn.net/Huang_8208_sibo/article/details/124699315


猜你喜欢
- 前情提要好久没有写Vue了,略有生疏,这个东西还是得多用。下午看到一个需求,选择相册图片作为轮播图显示。接口返回相册列表,用户选一下再扔回去
- 学习前言看了好多Github,用于保存模型的库都是Keras,我觉得还是好好学习一下的好什么是KerasKeras是一个由Python编写的
- 阅读上一篇:微软建议的ASP性能优化28条守则(4)技巧 13:避免重新确定数组的维数 应尽量避免 Redim 数组。就性能而言,如果计算机
- 本文实例讲述了Python3实现的字典、列表和json对象互转功能。分享给大家供大家参考,具体如下:python3可以使用json模块操作j
- 再写入数据库对时间进行加减操作时候django报告了错误TypeError: can't subtract offset-naive
- 0. 前言本节中,我们使用策略梯度算法解决 CartPole 问题。虽然在这个简单问题中,使用随机搜索策略和爬山算法就足
- 选项default-charaset-set=utf8;然后创建一个数据表 create table a_table(b varchar(2
- 比如,我要建立一个1,000,000行的数字表: CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY
- Python是一门高级编程语言,其拥有多种循环方式,如for循环、while循环、do-while循环等。在编写程序时,需要根据不同的场景和
- VueConf ,尤大说, Vue 支持 Ts 了,网上关于 Vue + Ts 的资料有点少, 楼主踩了一个星期坑,终于摸明白了 修饰器 的
- 学习目标Python 是简洁、易学、面向对象的编程语言。它不仅拥有强大的原生数据类型,也提供了简单易用的控制语句。本节的主要目标是介绍 Py
- 开发高质量软件的过程中,我们经常会为每个函数编写测试,这样在开发过程中运行这些测试的时候就比较方便,doctest是一个python标准库自
- 概念MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据
- 本文代码来之《数据分析与挖掘实战》,在此基础上补充完善了一下~代码是基于SVM的分类器Python实现,原文章节题目和code关系不大,或者
- 文本的排版依据语言的不同会有一些格式上的要求,比如简体中文中类似逗号、分号等标点符号不会出现在一行的开头,对于英文来讲就是一个完整单词不会在
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
- <body> <script> //关闭DIV MENU function MenuClose() { var Me
- 项目需求,可以用复选框勾选项目进行提交,如下表<table class="layui-table" lay-dat
- 前言:Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由by
- 当需要制作转动鼠标滚轮放大页面字体这样的交互效果时,会用到 Mousewheel 事件。其实在大多数浏览器(IE6, IE7, IE8, O