python画热力图
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画热力图相关推荐
- python画热力图_Python中绘制场景热力图
原博文 2019-08-06 15:39 − 我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步 ...
- python画热力图(相关系数矩阵图)
使用热力图的形式展示包括相关系数矩阵图的二维矩阵的方法,目前发现有两个: 首先是使用pandas包的函数,但是pandas包的目测,不能显示数字? 如果想试一下,可以参考https://zhuanla ...
- 【画图】Python绘制热力图方法以及保存不全问题(seaborn.heatmap)
0 前言 鉴于Matlab画图已经被封,自此画图战线全部转移到Python上来,这篇博客描述了Python画热力图的方法以及我踩到的坑. 1 程序 1.1 导入包 这里使用seaborn的heatma ...
- python 画蜘蛛_R绘图 vs Python绘图(散点图、折线图、直方图、条形图、箱线图、饼图、热力图、蜘蛛图)...
写在前面:为啥不用excel绘制这些图,用PoweBI,帆软BI等可视化软件来绘图,不是更方便吗?的确,这些工具都很方便,但同时,它们显得很呆,不够灵活,更为致命的是,它们绘制出的图形,分辨率不够,用 ...
- python根据经纬度画热力图_python 绘制场景热力图的示例
我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...
- python如何绘制曲线图_只会柱状图、饼状图、折线图怎么行,来用Python画个热力图...
花花世界迷人眼,东西太多不知选?万物存在即合理,不知根本,难得善法.术业有专攻,凡事不能蛮干,不知怎么画热力图,请往下看. 第一步:安装并导入相关包 主要用到了pandas和pyecharts这两个包 ...
- python 画相关系数矩阵图--热力图
1.读取数据 data=pd.read_excel(r'C:\Users\Administrator\Desktop\1_20191021评分卡解析.xlsx') 2.提取需要计算相关系数的列 a=d ...
- 如何用python画出中国地图-用Python画中国地图(二)
在上一篇文章<用Python画一个中国地图>中,我们简单描述了一下如何用Python快速画出一个中国地图的轮廓,似乎没有什么实用价值,这一次我们用实际数据填充它,使它看上去更有意义. 上色 ...
- python绘制三维散点图-python 画三维图像 曲面图和散点图的示例
用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits. ...
最新文章
- 2019秋招面试常考题目
- Mac终端(Terminal)自定义颜色,字体,背景
- 《Performance Overhead of Atomic Crosschain Transactions》
- cvtcolor python opencv_二值分析 | OpenCV + skimage如何提取中心线
- arcgis拆分多部件要素
- linux sftp ssh端口分开,sftp ssh服务分离
- 桩筏有限元中的弹性板计算_PKPM2010年11月结构技术问题汇总
- 关于linux学习的热身知识八
- DirectX 9 学习笔记
- 编码解码UNICODE
- 通用有限元软件简介及比较
- 【大数据】HBase集群部署
- 大型企业网络系统集成的设计方案
- Linux下PCIE设备分析软件
- mir显示服务器,The Legend Of Mir 服务器程序安装说明(图片)
- 告警关联中的频繁项集挖掘问题
- Saas 多租户模式介绍
- C++求最大与最小值
- uboot的官方网站
- SolidWorks焊件中将各结构构件分解成单个零件的方法
热门文章
- 使用ActiveReports for .net 进行报表开发(十)--交叉变换背景 (转)
- LaTeX tikz初探——基本图形绘制(1)
- signature=73d4f2b7e55a02359b7d1bf362a074d6,SHOCK ABSORBER
- 算法的优缺点_朴素贝叶斯算法的优缺点
- 用Python一键批量将任意结构的CSV文件导入 SQLite_用 Python 使用 Google Colab?岂止是炫酷...
- java面试会问到的问题吗_[转载]java面试中经常会被问到的一些算法的问题
- 插件properties_PageHelper分页插件的原理是什么
- 360网神防火系统 配置端口映射_IIS配置证书端口443无法访问
- 电脑分辨率是什么_吵翻天的2K、3K、4K屏到底是什么鬼?
- 计算机课教案学法,计算机应用基础教学方法初探