Matplotlib调用imshow()函数绘制热图

本文详细介绍了如何使用Matplotlib的imshow()函数绘制热图,包括基本的热图绘制、不同颜色映射、颜色条调整以及随机热力图的创建。通过示例代码展示了如何设置灰度、春季、夏季、秋季和冬季颜色映射,并解释了各参数的作用。
摘要由CSDN通过智能技术生成

一. Matplotlib简单回顾

Matplotlib是Python最著名的2D绘图库,该库仿造Matlab提供了一整套相似的绘图函数,用于绘图和绘表,强大的数据可视化工具和做图库,适合交互式绘图,图形美观。
首先,通过一段代码给大家回顾下Matplotlib绘图知识。
绘制2*3共6个子图,且图为空的代码如下:

[python]  view plain   copy
  1. # coding=utf-8  
  2. from matplotlib import pyplot as plt  
  3.   
  4. fig = plt.figure()  
  5. ax1 = fig.add_subplot(231)  
  6. ax2 = fig.add_subplot(232)  
  7. ax3 = fig.add_subplot(233)  
  8. ax4 = fig.add_subplot(234)   
  9. ax5 = fig.add_subplot(235)  
  10. ax6 = fig.add_subplot(236)  
  11. plt.grid(True)  
  12. plt.show()  
运行结果如下图所示:



然后需要调用函数绘图,下面提几个重点知识:
    1.plot(x, y, marker='D')表示绘制折线图,marker设置样式菱形。
    2.scatter(x, y, marker='s', color='r')绘制散点图,红色正方形。
    3.bar(x, y, 0.5, color='c')绘制柱状图,间距为0.5,原色。
    4.hist(data,40,normed=1,histtype='bar',
                   facecolor='yellowgreen',alpha=0.75)直方图。
    5.设置x轴和y轴的坐标值:
      xlim(-2.5, 2.5) #设置x轴范围 ylim(-1, 1) #设置y轴范围
    6.显示中文和负号代码如下:
      plt.rcParams['font.sas-serig']=['SimHei'] #用来正常显示中文标签
      plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

完整代码如下:

# -*- coding: utf-8 -*-
# @Time    : 2018/3/17 16:18
# @Author  : Barry
# @Email   : s.barry1994@foxmail.com
# @File    : imshow_heatmap.py
# @Software: PyCharm Community Edition


import numpy as np
from pylab import *
from matplotlib import pyplot as plt

x = [1, 2, 3, 4]
y = [3, 5, 10, 25]

# 创建Figure
fig = plt.figure()

# 创建一个或多个子图(subplot绘图区才能绘图)
ax1 = fig.add_subplot(231)
plt.plot(x, y, marker='D')  # 绘图及选择子图
plt.sca(ax1)

ax2 = fig.add_subplot(232)
plt.scatter(x, y, marker='s', color='r')
plt.sca(ax2)
plt.grid(True)

ax3 = fig.add_subplot(233)
plt.bar(x, y, 0.5, color='c')  # 柱状图 width=0.5间距
plt.sca(ax3)

ax4 = fig.add_subplot(234)
# 高斯分布
mean = 0  # 均值为0
sigma = 1  # 标准差为1 (反应数据集中还是分散的值)
data = mean + sigma * np.random.randn(10000)
plt.hist(data, 40, normed=1, histtype='bar', facecolor='yellowgreen', alpha=0.75)
plt.sca(ax4)

m = np.arange(-5.0, 5.0, 0.02)
n = np.sin(m)
ax5 = fig.add_subplot(235)
plt.plot(m, n)
plt.sca(ax5)

ax6 = fig.add_subplot(236)
xlim(-2.5, 2.5)  # 设置x轴范围
ylim(-1, 1)  # 设置y轴范围
plt.plot(m, n)
plt.sca(ax6)
plt.grid(True)

plt.show()

输出结果如下图所示:

Matplotlib强推博客:
http://www.cnblogs.com/zhizhan/p/5615947.html
http://blog.csdn.net/jinlong_xu/article/details/70183377



二. imshow详解热图知识

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



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)

其中,X变量存储图像,可以是浮点型数组、unit8数组以及PIL图像,如果其为数组,则需满足一下形状:
    (1) M*N      此时数组必须为浮点型,其中值为该坐标的灰度;
    (2) M*N*3  RGB(浮点型或者unit8类型)
    (3) M*N*4  RGBA(浮点型或者unit8类型)

下面这段代码是一个简单的实例,代码如下:
Matplotlib是一个Python数据可视化库,它提供了许多绘图选项和工具,其中包括绘制带有颜色条(colorbar)的图形。颜色条可以用来表示数据范围或数据的含义,是数据可视化中非常有用的一种工具。 Matplotlib中的颜色条可以通过`colorbar`函数实现。该函数可以在图形上添加一个与主图匹配的颜色条。在使用`colorbar`函数时,通常需要设置一些参数,如颜色条的位置、标签等。 下面是一个简单的示例代码,用于绘制一个二维热图,并添加一个颜色条: ```python import matplotlib.pyplot as plt import numpy as np # 生成二维数组 data = np.random.rand(10, 10) # 绘制热图 plt.imshow(data, cmap='cool') # 添加颜色条 plt.colorbar() # 显示图形 plt.show() ``` 在上述代码中,我们首先使用NumPy生成了一个10x10的二维数组`data`,然后使用`imshow`函数将其绘制成一个热图。通过设置参数`cmap='cool'`,我们指定了使用“冷色调”来表示数据。最后,我们调用`colorbar`函数添加了一个颜色条。运行该代码可以得到如下图形: ![matplotlib_cbar_demo](https://img-blog.csdn.net/2018052714111990?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Rlc3QxOTk2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85) 相关问题: 1. 如何在Matplotlib中添加颜色条? 2. 颜色条的位置和标签如何设置? 3. 颜色条可以用哪些参数进行自定义设置?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一摩尔自由

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值