Matplotlib 中二维数组的色图

Suraj Joshi 2023年1月30日 2020年12月31日
  1. 在 Matplotlib 中使用 matplotlib.pyplot.imshow() 方法绘制 2D 数组
  2. 在 Matplotlib 中使用 matplotlib.pyplot.pcolormesh() 方法绘制 2D 数组
Matplotlib 中二维数组的色图

本教程介绍了如何使用 Python 中的 matplotlib.pyplot.imshow()matplotlib.pyplot.pcolormesh() 方法生成 2D 数组的 colorplot 图。

在 Matplotlib 中使用 matplotlib.pyplot.imshow() 方法绘制 2D 数组

matplotlib.pyplot.imshow() 方法将一个二维数组作为输入,并将给定数组渲染为光栅图像。

matplotlib.pyplot.imshow() 的语法

matplotlib.pyplot.imshow(X, 
                        cmap=None,
                        norm=None,
                        aspect=None,
                        interpolation=None, 
                        alpha=None, 
                        vmin=None, 
                        vmax=None, 
                        origin=None, 
                        extent=None, *, 
                        filternorm=True, 
                        filterrad=4.0, 
                        resample=None, 
                        url=None, 
                        data=None, 
                        **kwargs)

matplotlib.pyplot.imshow() 示例

import numpy as np
import matplotlib.pyplot as plt

X=np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8,6))
plt.imshow(X)
plt.title("Plot 2D array")
plt.show()

输出:

使用 imshow 绘制 2D 数组 Matplotlib

它绘制使用 numpy.random.randint() 创建的大小 10*10 的 2D 数组。默认情况下,数值是使用 viridis colormap 映射的。

我们可以在 imshow() 方法中设置 cmap 参数来改变 colormap。

import numpy as np
import matplotlib.pyplot as plt

X=np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8,6))
plt.imshow(X,cmap="inferno")
plt.title("Plot 2D array")
plt.colorbar()
plt.show()

输出:

设置 cmap 使用 imshow 绘制 2D 数组 Matplotlib

它显示的是带有 inferno colormap 的二维数组图。我们还可以在图的右侧看到一个颜色条,它告诉我们数组中的哪些值被映射到哪些颜色上。

在 Matplotlib 中使用 matplotlib.pyplot.pcolormesh() 方法绘制 2D 数组

matplotlib.pyplot.pcolormesh() 函数在 Matplotlib 中创建一个伪彩色图。它与 matplotlib.pyplot.pcolor() 函数类似。

import numpy as np
import matplotlib.pyplot as plt

X=np.random.randint(256, size=(10, 10))

fig = plt.figure(figsize=(8,6))
plt.pcolormesh(X,cmap="plasma")
plt.title("Plot 2D array")
plt.colorbar()
plt.show()

输出:

使用 pcolormesh 绘制 2D 数组 Matplotlib

它绘制了使用 numpy.random.randint() 创建的大小为 10*10 的二维数组与 plasma colormap。右边的色条代表了分配给不同数值范围的颜色。

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn