matplotlib基础绘图命令之imshow的使用
作者:weixin_43569478 发布时间:2023-12-27 17:08:58
在matplotlib中,imshow方法用于绘制热图,基本用法如下
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(123456789)
data = np.random.rand(25).reshape(5, 5)
plt.imshow(data)
输出结果如下
imshow方法首先将二维数组的值标准化为0到1之间的值,然后根据指定的渐变色依次赋予每个单元格对应的颜色,就形成了热图。对于热图而言,通常我们还需要画出对应的图例,图例通过colorbar方法来实现,代码如下
plt.imshow(data)
plt.colorbar()
输出结果如下
imshow方法常用的几个参数如下
1. cmap
cmap是colormap的简称,用于指定渐变色,默认的值为viridis, 在matplotlib中,内置了一系列的渐变色,用法如下
plt.imshow(data, cmap='Greens')
输出结果如下
完整的内置colormap的列表见如下链接
https://matplotlib.org/tutorials/colors/colormaps.html
2. aspect
aspect用于指定热图的单元格的大小,默认值为equal,此时单元格用于是一个方块,当设置为auto时,会根据画布的大小动态调整单元格的大小,用法如下
plt.imshow(data, aspect='auto')
输出结果如下
3. alpha
alpha参数用于指定透明度,用法如下
plt.imshow(data, alpha=0.8)
输出结果如下
4. origin
orign参数指定绘制热图时的方向,默认值为upper, 此时热图的右上角为(0, 0), 当设置为lower时,热图的左下角为(0,0), 用法如下
plt.imshow(data, origin='lower')
输出结果如下
5. vmin和vmax
vmin和vmax参数用于限定数值的范围,只将vmin和vmax之间的值进行映射,用法如下
plt.imshow(data, vmin=-0.8, vmax=0.8)
plt.colorbar()
输出结果如下
6. interpolation
interprolation参数控制热图的显示形式,是一个较难理解的参数,同样的数据,不同取值对应的热图形式如下
在日常使用而言,nearest和None是应用的最多的。
7. extent
extent参数指定热图x轴和y轴的极值,取值为一个长度为4的元组或列表,其中,前两个数值对应x轴的最小值和最大值,后两个参数对应y轴的最小值和最大值,用法如下
plt.imshow(data, extent=(-0.5, 4.5, 4.5, -0.5))
输出结果如下
可以看到,上述代码的输出和默认输出完全一致。其实, extent和origin两个参数是相互关联的,origin参数的值为upper时,extent参数的默认值如下
(-0.5, ncol(data) - 0.5, nrow(data)-0.5, 0.5)
当origin参数的值为lower时,extent参数的默认值如下
(-0.5, ncol(data) - 0.5, -0.5, nrow(data)-0.5)
修改extent参数的值,图中单元格对应的刻度会发生变化,示意如下
plt.imshow(data,extent=(-0.5,5.5,-5.5,0.5))
输出结果如下
大多数的情况下,我们都不需要自己来手动指定extent参数的值。
在绘制热图时,还可以结合xlim和ylim参数,来为热图的周围增加空隙,代码如下
plt.imshow(data)
plt.xlim(-1, 5)
plt.ylim(5, -1)
plt.colorbar()
输出结果如下
相比R语言中的热图,matplotlib中的热图没有聚类树的功能,需要自己手动来实现,但是可以很方便的添加图例,而且受益于matplotlib灵活的基础功能,可以实现非常复杂的如图。
python使用plt.imshow在坐标轴上展示图片,坐标设置问题。
坐标默认是从上到下,从左到右,例如
matplotlib.pyplot.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
他的参数很多,找了很久,才发现,应该是设置origin
参数。
origin : [‘upper' | ‘lower'], optional, default: None
Place the [0,0] index of the array in the upper left or lower left corner of the axes.
If None, default to rc image.origin.
设origin=‘lower'
,就得到如下图:
来源:https://blog.csdn.net/weixin_43569478/article/details/107888778


猜你喜欢
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C
- 见过很多网站,在设计的时候给了用户很大的自由度,我个人并不赞同这种做法。最简单的例子,圈网。我在研究圈网的时候注册完成后圈网给了我一个搜索框
- lambda 语法lambda 函数的语法只包含一个语句,表现形式如下:lambda [arg1 [,arg2,.....argn]]:ex
- 本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写。首先我们需要了解点ORM方面的知识ORM技术对象关系映射技术
- 对图像块应用仿射变换,我们将其称为图像扭曲(或者仿射扭曲)。该操作不仅经常应用在计算机图形学中,而且经常出现在计算机视觉算法中。一、仿射变换
- 开发环境安装最新版Python下载地址:https://www.python.org/downloads/运行Python1.交互方式运行用
- 这篇文章主要介绍了基于Python实现ComicReaper漫画自动爬取脚本过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具
- 引言书接上回 Gradio机器学习模型快速部署工具【quickstart】翻译,讲到多输入输出,其实很简单,就是把多个组件包装到列表,inp
- TIPS:没有特殊说明,测试环境均为MySQL8.0,早期版本可能会有更多情况导致索引失效。8.0失效的情况,早期版本也失效;8.0不失效的
- 前言用过Django的小伙伴都知道,Django的ORM是自带的,比较特殊,而且集成了很多功能,比如数据库迁移… 何为ORM,个人之见解,简
- bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
- 本文实例讲述了Python找出序列中出现次数最多的元素。分享给大家供大家参考,具体如下:问题:找出一个元素序列中出现次数最多的元素是什么解决
- 目录1. 将索引从 groupby 操作转换为列2. 使用现有的 DataFrame 设置索引3. 一些操作后重置索引4.排序后重置索引5.
- 开始之前,安利一本正在看的书《站在两个世界的边缘》,作者程浩,上帝丢给他太多理想,却忘了给他完成理想的时间。OK,有兴趣的可以看一看。nod
- python实现两个文本合并employee文件中记录了工号和姓名cat employee.txt:100 Jason Smith200 J
- 字典(dict)对象是 Python 最常用的数据结构,社区曾有人开玩笑地说:"Python企图用字典装载整个世界",字
- 我们使用 python setup.py install 来安装python包,但是如何卸载呢?只能手动删除安装的文件可以使用如下命令pyt
- 1.学习目标递归函数是直接调用自己或通过一系列语句间接调用自己的函数。递归在程序设计有着举足轻重的作用,在很多情况下,借助递归可以优雅的解决
- 最近邻:import cv2import numpy as npdef function(img): height,width,channe
- 目录前言场景分析总结前言前几天,有位朋友微信联系我,告知一个生产数据库,在机器宕机恢复后,实例启动失败,而且该实例没有做任何的高可用、容灾、