【python资料】热图和Matplotlib.imshow()函数

news2024/11/25 9:42:01

一、说明

        Matplotlib是一个强大的Python数据可视化库,可以绘制各种类型的图形,其中包括热图。热图通常用于表现数据的分布和趋势。本文用一个简单的例子,告诉大家用Matplotlib绘制热图的基本操作语句。

 

二、热图的概念

2.1 基本概念

        热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。Python在Matplotlib库中,调用imshow()函数实现热图绘制。
        参考资料:http://matplotlib.org/users/image_tutorial.html

2.2 热图绘制方法

一般化例子代码

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
data = np.random.rand(10, 10)

# 绘制热图
fig, ax = plt.subplots()
im = ax.imshow(data)

# 设置刻度
ax.set_xticks(np.arange(10))
ax.set_yticks(np.arange(10))

# 将刻度标签替换为数组值
ax.set_xticklabels(np.arange(1, 11))
ax.set_yticklabels(np.arange(1, 11))

# 添加颜色条
cbar = ax.figure.colorbar(im, ax=ax)

# 设置图形标题
ax.set_title("Heatmap Example")

# 显示图形
plt.show()

        这段代码将随机生成一个10x10的数组,并将其用作热图的数据。然后,我们创建一个图形和一个轴对象,并使用Matplotlib中的imshow函数将数据绘制为一个热图。设置刻度和刻度标签以显示数据的行和列,添加一个颜色条以表示数据范围,并设置图形标题。最后,我们使用show函数显示热图。

三、imshow函数说明

3.1 函数原型

imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, data=None, **kwargs)

3.2 函数参数表

参数名称参数作用备注
X

二维数组,表示要显示的图像。

X变量存储图像,可以是浮点型数组、unit8数组以及PIL图像,如果其为数组,则需满足一下形状:
    (1) M*N      此时数组必须为浮点型,其中值为该坐标的灰度;
    (2) M*N*3  RGB(浮点型或者unit8类型)
    (3) M*N*4  RGBA(浮点型或者unit8类型)

输入
cmap=None

        颜色映射。常见的有 'viridis''jet''gray' 等。

    hot 从黑平滑过度到红、橙色和黄色的背景色,然后到白色。
    cool 包含青绿色和品红色的阴影色。从青绿色平滑变化到品红色。
    gray 返回线性灰度色图。
    bone 具有较高的蓝色成分的灰度色图。该色图用于对灰度图添加电子的视图。
    white 全白的单色色图。 
    spring 包含品红和黄的阴影颜色。 
    summer 包含绿和黄的阴影颜色。
    autumn 从红色平滑变化到橙色,然后到黄色。 
    winter 包含蓝和绿的阴影色。

interpolation

插值方式。常见的有 'nearest''bicubic' 等。

aspect

 图像长宽比。

vmin 图像的颜色最小值。
vmax图像的颜色最大值。
alpha透明度
origin坐标轴原点的位置。可以设置为upperlower
extent控制显示的数据范围。可以设置为[xmin, xmax, ymin, ymax]
shape 
origin
  • 坐标轴原点的位置。可以设置为upperlower
extent
  • extent:控制显示的数据范围。可以设置为[xmin, xmax, ymin, ymax]
filternorm 和 filterrad

用于图像滤波的对象。可以设置为Noneantigrainfreetype等。

imlim用于指定图像显示范围。
resample用于指定图像重采样方式。
url用于指定图像链接。

四、imshow使用案例

显示二维高斯分布的blob图:

import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
# 资料 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.html

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False


mean = [0,0]
cov = [[1,1],[1,2]]
x,y = np.random.multivariate_normal(mean, cov, 10000).T
# 拟合数组维度
data = np.vstack([x, y])
kde =  stats.gaussian_kde(data)


# 用一对规则的网络数据进行拟合
xgrid = np.linspace(-3.5, 3.5, 200)
ygrid = np.linspace(-6, 6, 200)
Xgrid, Ygrid = np.meshgrid(xgrid, ygrid)
Z = kde.evaluate(np.vstack([Xgrid.ravel(), Ygrid.ravel()]))

# 画出结果图
plt.imshow(Z.reshape(Xgrid.shape),
           origin='lower',aspect='auto',
           extent=[-3.5, 3.5, -6, 6],cmap='Blues')
plt.xlabel('速度')
plt.ylabel('位置')
plt.show()

运行结果 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7EBG-10-C-B-107EBG-20-B-B-10比例先导溢流阀放大板

7EBG-10-B-B-10、7EBG-20-C-B-10、7EBG-30-H-B-10、7EBG-10-C-B-10、7EBG-20-B-B-10、7EBG-30-C-B-10特性: ● 该阀是由高性能型比例先导式溢流阀和低噪音型溢流阀组合而成,进行压力与输入电流成比例的压力控制,能够达到无段式控制特性。 ●…

c++(内存管理)

本节目标: 1、c/c内存分布 2、c语言中动态内存管理方式 3、c中动态内存管理 4、operator new 与 operator delete函数 5、new和delete的实现原理 6、定位new表达式(placement - new) 7、常见面试题 目录 1.c/c内存分布 2、c语言中动…

StringRedisTemplate和RedisTemplate的区别

StringRedisTemplate和RedisTemplate的区别 springboot提供了两种redis访问工具类StringRedisTemplate和RedisTemplate,为什么spring官方会提供两种不同redis访问工具呢?两者主要的的区别在于redis的key和value的序列化方式不同,并且StringR…

手把手教你制作AI孙燕姿,让你的抖音视频火遍全网!

最近“AI孙燕姿”翻唱”的《发如雪》《爱在西元前》等歌曲在B站、抖音、快手等短视频平台爆火,截止到发稿前抖音的播放量已经超1700万。 目前AI孙燕姿制作教程资料较少,网上搜到几个都是使用开源项目Sovits来训练模型,使用门槛较高。 本文以…

云时通 X 九毛九 | SRM系统助力连锁餐饮行业高效管理供应链

餐饮行业作为第三产业中的传统服务性行业之一,始终保持旺盛的发展势头,随着时代的进步,现代餐饮企业更多以连锁业态发展,其特点是多种形式相结合而生,将新颖的就餐空间与潮流文化和传统的经典美味互相融合,…

​数据库原理及应用上机(实验五 SQL的数据更新)

✨作者:命运之光 ✨专栏:数据库原理及应用上机实验 🍓🍓前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善🍓🍓 ✨一、实验目的和要求 掌握SQL数据插入、修改和删除语句的一…

多大一口气能将汽车吹上天,你算出来了吗?

多大一口气能将汽车吹上天,你算出来了吗?起来了解其中的原理,手把手教你如何计算汽车起飞所需的风速! 空气同时通过机翼上表面和下表面时,会在机翼上下方形成不同流速,空气通过机翼上表面时流速大,压强较小;通过下表面…

设计模式之【中介者模式】,多对多关系降级为一对多关系的利器

文章目录 一、什么是中介者模式1、中介者模式的优势2、中介者模式的缺点3、中介者模式的应用场景4、中介者模式的四大角色5、观察者模式和中介模式的区别 二、实例1、中介者模式的一般写法2、租房中介案例3、智能家具案例 三、源码中的中介者模式1、Timer 一、什么是中介者模式…

Spring MVC 中的视图解析器是什么?如何配置它

当我们使用 Spring MVC 框架进行 Web 开发时,视图解析器(View Resolver)是一个非常重要的组件,它负责将控制器(Controller)所产生的逻辑视图名称(Logical View Name)转换成实际的视图…

Go语言环境搭建(内附网P下载地址)

一、Golang语言的官网 首先我们登录Golang的官方网站:https://golang.org/ 因为Google和中国的关系,直接登录Golang的官网,需要翻墙。 当然你也可以登录Golang的国内网站:https://golang.google.cn/ 二、下载 在Mac、Windows和L…

2023贵工程团体程序设计赛--赛后总结

本次比赛共27支队伍参加,总计135人,其中一支队伍为出题组(不计入最后排名)。实际参赛130人,5人缺考(1人未加入题集)。 1.人员分布 信息工程学院:22计科2支队伍,22软件6…

Python|Pyppeteer快速定位select下拉框(10)

前言 本文是该专栏的第10篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 一般情况下,选中某个select下拉框,会出现一堆可选信息。如下图中的Country列表,点击列表会出现多个国家选择,如下图所示。 比如说,现在需要从这个Country列表中,快速选中某个国家…

2023新版Spring6全新讲解-SpringFramework介绍

SpringFramework介绍 一、官网地址阅读 https://spring.io/ 二、Spring的发展历史 三、Spring的概述 一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一…

Jmeter连接不同类型数据库语法

Jmeter连接不同类型数据库语法 添加:配置原件->JDBC Connection Configuration variable name for created pool:自定义一个线程池变量名database Connection Configuration database URL: 填写数据库ip、端口、dbname等,但是不同数据库…

【UE4】从零开始制作战斗机(下:喷射尾焰随推进速度变化)

上一篇: 【UE4】从零开始制作战斗机(中:飞机操控逻辑)_Zhichao_97的博客-CSDN博客 效果 步骤 1. 新建一个Niagara发射器 选择新发射器 选择空模板 命名为“ThrusterEmitter” 2. 打开“ThrusterEmitter”,选中“发射…

真题详解(快速排序)-软件设计(八十一)

原创 真题详解(语法分析输入记号流)-软件设计(八十)https://blog.csdn.net/ke1ying/article/details/130791934 COCOMOII基于____进行估算? 答案:源代码行数 2、0~7有8个索引,0~4是5个直接索引,磁盘块数据大小1kb字节…

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer)

Spring Cloud(Kilburn 2022.0.2版本)系列教程(二) 服务消费者(RestTemplate+Loadbalancer) 一、服务消费 可以参考上节eurekaClientConsumer。 在启动类中,我们已经注入了一个restTemplate了,并且在上面增加了@LoadBalanced注解,这个是导入的org.springframework.cloud.cl…

001. 为啥用IDEA反编译没有擦除泛型?

你好,我是YourBatman:一个俗人,贪财好色。 📚前言 Java泛型是进阶高级开发必备技能之一,了解实现泛型的基本原理,有助于写出更优质的代码。 众所周知,Java是伪泛型,是通过类型擦除…

Redis哨兵集群搭建及其原理

Redis哨兵集群搭建及其原理 1.Redis哨兵1.1.哨兵原理1.1.1.集群结构和作用1.1.2.集群监控原理1.1.3.集群故障恢复原理1.1.4.小结 2.搭建哨兵集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.测试 3.RedisTemplate3.1.引入依赖3.2.配置Redis地址3.3.配置读写分离 1.Redis哨兵 R…

Centos8安装ffmpeg,使用mediamtx搭建RTSP流媒体服务器

文章目录 1、Centos安装ffmpeg2、使用mediamtx搭建媒体服务器 1、Centos安装ffmpeg 1、先安装epel-release yum install epel-release2、安装nux存储库 rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/…