Matplotlib 中二维数组的色图

Suraj Joshi 2024年2月15日
  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。右边的色条代表了分配给不同数值范围的颜色。

作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn