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()

输出:

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()

输出:

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()

输出:

Matplotlib 中二维数组的色图

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