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)

输出结果如下

matplotlib基础绘图命令之imshow的使用

imshow方法首先将二维数组的值标准化为0到1之间的值,然后根据指定的渐变色依次赋予每个单元格对应的颜色,就形成了热图。对于热图而言,通常我们还需要画出对应的图例,图例通过colorbar方法来实现,代码如下


plt.imshow(data)
plt.colorbar()

输出结果如下

matplotlib基础绘图命令之imshow的使用

imshow方法常用的几个参数如下

1. cmap

cmap是colormap的简称,用于指定渐变色,默认的值为viridis, 在matplotlib中,内置了一系列的渐变色,用法如下 


plt.imshow(data, cmap='Greens')

输出结果如下

matplotlib基础绘图命令之imshow的使用

完整的内置colormap的列表见如下链接

https://matplotlib.org/tutorials/colors/colormaps.html

2. aspect

aspect用于指定热图的单元格的大小,默认值为equal,此时单元格用于是一个方块,当设置为auto时,会根据画布的大小动态调整单元格的大小,用法如下


plt.imshow(data, aspect='auto')

输出结果如下

matplotlib基础绘图命令之imshow的使用

3. alpha

alpha参数用于指定透明度,用法如下


plt.imshow(data, alpha=0.8)

输出结果如下

matplotlib基础绘图命令之imshow的使用

4. origin

orign参数指定绘制热图时的方向,默认值为upper,  此时热图的右上角为(0, 0), 当设置为lower时,热图的左下角为(0,0), 用法如下


plt.imshow(data, origin='lower')

输出结果如下

matplotlib基础绘图命令之imshow的使用

5. vmin和vmax

vmin和vmax参数用于限定数值的范围,只将vmin和vmax之间的值进行映射,用法如下


plt.imshow(data, vmin=-0.8, vmax=0.8)
plt.colorbar()

输出结果如下

matplotlib基础绘图命令之imshow的使用

6. interpolation

interprolation参数控制热图的显示形式,是一个较难理解的参数,同样的数据,不同取值对应的热图形式如下

matplotlib基础绘图命令之imshow的使用

在日常使用而言,nearest和None是应用的最多的。

7. extent

extent参数指定热图x轴和y轴的极值,取值为一个长度为4的元组或列表,其中,前两个数值对应x轴的最小值和最大值,后两个参数对应y轴的最小值和最大值,用法如下


plt.imshow(data, extent=(-0.5, 4.5, 4.5, -0.5))

输出结果如下

matplotlib基础绘图命令之imshow的使用

可以看到,上述代码的输出和默认输出完全一致。其实, 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))

输出结果如下

matplotlib基础绘图命令之imshow的使用

大多数的情况下,我们都不需要自己来手动指定extent参数的值。

在绘制热图时,还可以结合xlim和ylim参数,来为热图的周围增加空隙,代码如下


plt.imshow(data)
plt.xlim(-1, 5)
plt.ylim(5, -1)
plt.colorbar()

输出结果如下

matplotlib基础绘图命令之imshow的使用

相比R语言中的热图,matplotlib中的热图没有聚类树的功能,需要自己手动来实现,但是可以很方便的添加图例,而且受益于matplotlib灵活的基础功能,可以实现非常复杂的如图。

python使用plt.imshow在坐标轴上展示图片,坐标设置问题。

坐标默认是从上到下,从左到右,例如

matplotlib基础绘图命令之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',就得到如下图:

matplotlib基础绘图命令之imshow的使用

来源:https://blog.csdn.net/weixin_43569478/article/details/107888778

标签:matplotlib,imshow
0
投稿

猜你喜欢

  • SQL语句的执行原理分析

    2024-01-15 03:17:59
  • PyQt5每天必学之滑块控件QSlider

    2021-11-21 09:50:17
  • Python 字符串、列表、元组的截取与切片操作示例

    2021-12-10 09:47:34
  • pandas loc iloc ix用法详细分析

    2021-08-31 20:16:53
  • 一列保存多个ID(将多个用逗号隔开的ID转换成用逗号隔开的名称)

    2012-08-21 10:37:37
  • MySQL建立唯一索引实现插入重复自动更新

    2024-01-12 13:46:36
  • python实现线性插值的示例

    2023-08-10 21:33:55
  • python flask解析json数据不完整的解决方法

    2021-07-12 01:45:00
  • python中wheel的用法整理

    2022-07-03 18:15:47
  • plsql与tsql的语法不同

    2009-09-13 17:33:00
  • vscode安装使用的详细教程

    2022-06-10 01:15:24
  • vscode添加GIT和SVN的方法示例

    2023-08-24 17:44:38
  • openfiledialog读取txt写入数据库示例

    2024-01-16 02:03:35
  • Python爬虫之pandas基本安装与使用方法示例

    2023-11-26 21:49:35
  • Python+ Flask实现Mock Server详情

    2021-02-11 19:56:28
  • 关于vue.js中实现方法内某些代码延时执行

    2024-05-21 10:30:46
  • np.where()[0] 和 np.where()[1]的具体使用

    2023-04-21 20:21:29
  • Python requests库参数提交的注意事项总结

    2021-11-18 19:40:18
  • 单步调试 step into/step out/step over 区别说明

    2022-03-09 20:03:26
  • Django自定义分页与bootstrap分页结合

    2022-05-31 23:53:00
  • asp之家 网络编程 m.aspxhome.com