python中可使用seaborn.heatmap画热力图,官方文档在这

在分类任务中,也可用于画混淆矩阵:

import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as pltdef confusion_matrix(y_true, y_pred, labels=None):n = len(labels)labels_dict = {label: i for i, label in enumerate(labels)}res = np.zeros([n, n], dtype=np.int32)for gold, predict in zip(y_true, y_pred):res[labels_dict[gold]][labels_dict[predict]] += 1df = pd.DataFrame(res, index=labels, columns=labels)sns.heatmap(df, annot=True, fmt='d')plt.savefig("./confusion_matrix.jpg")plt.show()y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]  # 真实
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]  # 预测
labels = ["ant", "bird", "cat"]confusion_matrix(y_true, y_pred, labels)

一些参数的含义:

def heatmap(data, *,vmin=None, vmax=None, cmap=None, center=None, robust=False,annot=None, fmt=".2g", annot_kws=None,linewidths=0, linecolor="white",cbar=True, cbar_kws=None, cbar_ax=None,square=False, xticklabels="auto", yticklabels="auto",mask=None, ax=None,**kwargs
)
  • 根据data传入的值画出热力图,一般是二维矩阵
  • vmin设置最小值, vmax设置最大值
  • cmap换用不同的颜色
  • center设置中心值
  • annot 是否在方格上写上对应的数字
  • fmt 写入热力图的数据类型,默认为科学计数,d表示整数,.1f表示保留一位小数
  • linewidths 设置方格之间的间隔
  • xticklabels,yticklabels填到横纵坐标的值。可以是bool,填或者不填。可以是int,以什么间隔填,可以是list

例子:

import numpy as np
np.random.seed(0)
import seaborn as sns
sns.set_theme()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)

将最后一行改为,设置最大值和最小值:

ax = sns.heatmap(uniform_data, vmin=0, vmax=1)

设置中心值:

normal_data = np.random.randn(10, 12)
ax = sns.heatmap(normal_data, center=0)

从文件中获取数据,并画图给出有意义的横纵坐标:

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax = sns.heatmap(flights)

将passengers对应的人数标出:

ax = sns.heatmap(flights, annot=True, fmt="d")


设置方格之间的间隔:

ax = sns.heatmap(flights, linewidths=.5)


设置使用不同的颜色:

ax = sns.heatmap(flights, cmap="YlGnBu")

以某个具体的数据为中心:

ax = sns.heatmap(flights, center=flights.loc["Jan", 1955])

自动填充坐标值:

data = np.random.randn(50, 20)
ax = sns.heatmap(data, xticklabels=2, yticklabels=False)

不画右边的热度条:

ax = sns.heatmap(flights, cbar=False)

python画热力图相关推荐

  1. python画热力图_Python中绘制场景热力图

    原博文 2019-08-06 15:39 − 我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步 ...

  2. python画热力图(相关系数矩阵图)

    使用热力图的形式展示包括相关系数矩阵图的二维矩阵的方法,目前发现有两个: 首先是使用pandas包的函数,但是pandas包的目测,不能显示数字? 如果想试一下,可以参考https://zhuanla ...

  3. 【画图】Python绘制热力图方法以及保存不全问题(seaborn.heatmap)

    0 前言 鉴于Matlab画图已经被封,自此画图战线全部转移到Python上来,这篇博客描述了Python画热力图的方法以及我踩到的坑. 1 程序 1.1 导入包 这里使用seaborn的heatma ...

  4. python 画蜘蛛_R绘图 vs Python绘图(散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图)...

    写在前面:为啥不用excel绘制这些图,用PoweBI,帆软BI等可视化软件来绘图,不是更方便吗?的确,这些工具都很方便,但同时,它们显得很呆,不够灵活,更为致命的是,它们绘制出的图形,分辨率不够,用 ...

  5. python根据经纬度画热力图_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  6. python如何绘制曲线图_只会柱状图、饼状图、折线图怎么行,来用Python画个热力图...

    花花世界迷人眼,东西太多不知选?万物存在即合理,不知根本,难得善法.术业有专攻,凡事不能蛮干,不知怎么画热力图,请往下看. 第一步:安装并导入相关包 主要用到了pandas和pyecharts这两个包 ...

  7. python 画相关系数矩阵图--热力图

    1.读取数据 data=pd.read_excel(r'C:\Users\Administrator\Desktop\1_20191021评分卡解析.xlsx') 2.提取需要计算相关系数的列 a=d ...

  8. 如何用python画出中国地图-用Python画中国地图(二)

    在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...

  9. python绘制三维散点图-python 画三维图像 曲面图和散点图的示例

    用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits. ...

最新文章

  1. 2019秋招面试常考题目
  2. Mac终端(Terminal)自定义颜色,字体,背景
  3. 《Performance Overhead of Atomic Crosschain Transactions》
  4. cvtcolor python opencv_二值分析 | OpenCV + skimage如何提取中心线
  5. arcgis拆分多部件要素
  6. linux sftp ssh端口分开,sftp ssh服务分离
  7. 桩筏有限元中的弹性板计算_PKPM2010年11月结构技术问题汇总
  8. 关于linux学习的热身知识八
  9. DirectX 9 学习笔记
  10. 编码解码UNICODE
  11. 通用有限元软件简介及比较
  12. 【大数据】HBase集群部署
  13. 大型企业网络系统集成的设计方案
  14. Linux下PCIE设备分析软件
  15. mir显示服务器,The Legend Of Mir 服务器程序安装说明(图片)
  16. 告警关联中的频繁项集挖掘问题
  17. Saas 多租户模式介绍
  18. C++求最大与最小值
  19. uboot的官方网站
  20. SolidWorks焊件中将各结构构件分解成单个零件的方法

热门文章

  1. 使用ActiveReports for .net 进行报表开发(十)--交叉变换背景 (转)
  2. LaTeX tikz初探——基本图形绘制(1)
  3. signature=73d4f2b7e55a02359b7d1bf362a074d6,SHOCK ABSORBER
  4. 算法的优缺点_朴素贝叶斯算法的优缺点
  5. 用Python一键批量将任意结构的CSV文件导入 SQLite_用 Python 使用 Google Colab?岂止是炫酷...
  6. java面试会问到的问题吗_[转载]java面试中经常会被问到的一些算法的问题
  7. 插件properties_PageHelper分页插件的原理是什么
  8. 360网神防火系统 配置端口映射_IIS配置证书端口443无法访问
  9. 电脑分辨率是什么_吵翻天的2K、3K、4K屏到底是什么鬼?
  10. 计算机课教案学法,计算机应用基础教学方法初探