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

在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',就得到如下图:

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

(0)

相关推荐

  • 解决python matplotlib imshow无法显示的问题

    实例如下所示: import matplotlib.pyplot as plt plt.imshow(img) #控制台打印出图像对象的信息,而图像没有显示 解决方法: #引入pylab解决 import matplotlib.pyplot as plt import pylab plt.imshow(img) pylab.show() 以上这篇解决python matplotlib imshow无法显示的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python matplotlib imshow热图坐标替换/映射实例

    今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序, 但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标, 实际中我们可能期望坐标点是其他的一个范围,如图: 坐标点标出来的是实际数组中的下标,而我希望纵坐标是频率,横坐标是其他的范围 plt.yticks(np.arange(0, 1024, 100), np.arange(10000, 11024, 100)) #第一个参数表示原来的坐标范围,100是每隔100个点标出一次

  • OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现

    一.问题 在Python里使用OpenCV时,一般是通过cv2.imread读入图片,然后用plt.imshow显示图片,但最近学习OpenCV时这样做的结果与预期的结果有较大的出入.查找资料后,才明白OpenCV里的imshow()和Matplotlib.pyplot的imshow()在使用上有一些区别,不注意的话很容易就会导致很奇怪的结果. 下面的示例代码及运行结果显示了这种差异: import cv2 import matplotlib.pyplot as plt #以灰度模式读入图片 m

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

    在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之间的值,然后根据指定的渐变色依次赋予每个单元格对应的颜色,就形成了热图.对于热图而言,通常我们还需

  • matplotlib基础绘图命令之bar的使用方法

    在matplotlib中,bar命令用于绘制柱状图,基本用法如下在matplotlib中,bar命令用于绘制柱状图,基本用法如下在matplotlib中,bar命令用于绘制柱状图,基本用法如下在matplotlib中,bar命令用于绘制柱状图,基本用法如下在matplotlib中,bar命令用于绘制柱状图,基本用法如下 在matplotlib中,bar命令用于绘制柱状图,基本用法如下 plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1]) 输出结果如下

  • matplotlib基础绘图命令之errorbar的使用

    在matplotlib中,errorbar方法用于绘制带误差线的折线图,基本用法如下 plt.errorbar(x=[1, 2, 3, 4], y=[1, 2, 3, 4], yerr=1) 输出结果如下 yerr参数用于指定y轴水平的误差,同时该方法也支持x轴水平的误差,对应参数xerr.指定误差值有多种方式,上述代码展示的是指定一个统一标量的用法,此时,所以的点误差值都一样. 除此之外,还可以指定为一个和点的个数相同的数组,为每个点单独设置误差值,用法如下 plt.errorbar(x=[1

  • Python使用matplotlib实现基础绘图功能示例

    本文实例讲述了Python使用matplotlib实现基础绘图功能.分享给大家供大家参考,具体如下: 一个简单的例子 # -*- coding:utf-8 -*- #!python3 import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,10,101) #设置起始及终点,以及点的数量 y = np.sin(x) #调用numpy库的sin函数 z = np.cos(x**2) plt.figure(figsize

  • python数据分析matplotlib的基础绘图使用

    目录 前言 (一)什么是matplotlib 1.为什么要学习matplotlib 2.什么是matplotlib 3. 安装matplotlib 4.导入matplotlib库 (二)matplotlib基本要点 1.matplotlib基本使用 2.完善matplotlib绘制的图形 前言 大家好,我是苏凉,在前面我们已经学习了网络爬虫并且获取到了数据,接下来当然是对数据进行分析啦,本篇文章带大家进入新的模块:pyhon数据分析基础matplotlib的基础绘图. (一)什么是matplot

  • Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度

    前言 matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等.matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上. 在开始本文之前,不熟悉的朋友可以先看看这篇文章:Python

  • 教你学会通过python的matplotlib库绘图

    一.前言 python的matplotlib库很强大可以绘制各种类型的图像. 首先要装一些基础的库,如numpy,matplotlib或是pandas. 二.基础命令 首先介绍绘图时常用的基础命令: 1.plt.plot(x,y)即为绘图命令. ①基础画图: plt.plot(x, y) ②设置颜色: color属性 如果没有特别要求的话可以不手动设置颜色,如果要在一张图上画不同的线时,会自动分配颜色.也可以使用ax.plot效果相同. plt.plot(x, y, color = 'red')

  • 在pycharm中使用matplotlib.pyplot 绘图时报错的解决

    This application failed to start because it could not find or load the Qt platform plugin "windows" in " ". 百度谷歌了好久都没能解决这个问题都没能解决 开始我以为是缺少windows这个包,但是代码里并没有用到,所以我打断点去看代码到底问题出在哪里 发现问题出在matplotlib上面,我猜想是Qt和matplotlib版本不兼容导致的,于是我卸载了这两个插件

  • Python matplotlib实用绘图技巧汇总

    前言 在日常的业务数据分析 ,可视化是非常重要的步骤.这里总结了matplotlib常用绘图技巧,希望可以帮助大家更加更加高效的.美观的显示图表.作者:北山啦 Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 PyQt 和wxPython. pip3 install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple impo

  • Python画图工具Matplotlib库常用命令简述

    目录 1. 简单例程柱状图 2. 读取exal方法 2.1  数据处理常用库:pandas 2.2 提取列表数组 3. 论文图片的类型和格式 4. 柱状图扩展 4.1 堆叠柱状图 4.2 分解柱状图 5. Python绘制折线图坐标无法显示负号 6.  Python坐标轴显示汉字 matplotlib官网 matplotlib库默认英文字体 添加黑体('SimHei')为绘图字体 代码: plt.rcParams['font.sans-serif']=['SimHei'] 1. 简单例程柱状图

随机推荐