文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-10-10 15:24

关注

目录

一、说明

二、热图的概念

2.1 基本概念

2.2 热图绘制方法

三、imshow函数说明

3.1 函数原型

3.2 函数参数表

四、imshow使用案例


一、说明

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

二、热图的概念

2.1 基本概念

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

2.2 热图绘制方法

一般化例子代码

import matplotlib.pyplot as pltimport 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 pltimport numpy as npfrom scipy import stats# 资料 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gaussian_kde.htmlplt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsemean = [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()

运行结果 

来源地址:https://blog.csdn.net/gongdiwudu/article/details/130799315

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯