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


Posted in Python onAugust 13, 2020

在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的使用

到此这篇关于matplotlib基础绘图命令之imshow的使用的文章就介绍到这了,更多相关matplotlib imshow内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现LRU算法的2种方法
Jun 24 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
解决Python print输出不换行没空格的问题
Nov 14 Python
python实现蒙特卡罗方法教程
Jan 28 Python
实例讲解Python3中abs()函数
Feb 19 Python
Python I/O与进程的详细讲解
Mar 08 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
Django中自定义查询对象的具体使用
Oct 13 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
浅谈Python __init__.py的作用
Oct 28 Python
使用jupyter notebook运行python和R的步骤
Aug 13 #Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 #Python
Python如何读写CSV文件
Aug 13 #Python
区分python中的进程与线程
Aug 13 #Python
python判断一个变量是否已经设置的方法
Aug 13 #Python
vscode+PyQt5安装详解步骤
Aug 12 #Python
python使用列表的最佳方案
Aug 12 #Python
You might like
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
php设计模式之委托模式
2016/02/13 PHP
asp.net和php的区别点总结
2019/10/10 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
vue项目中锚点定位替代方式
2019/11/13 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
50行Python代码获取高考志愿信息的实现方法
2019/07/23 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
公务员的自我鉴定
2013/10/26 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
党员干部承诺书范文
2014/03/25 职场文书
文明工地标语
2014/06/16 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
求职自荐信怎么写
2015/03/04 职场文书
新闻报道稿范文
2015/07/23 职场文书