Python 中绘制伪彩图(色块图、热力图等)时,可以通过指定不同的 colormap(颜色映射表)来改变伪彩图的颜色。Matplotlib 提供了多种预定义的 colormap,也可以自定义 colormap。

下面是一个简单的例子,展示如何使用 Matplotlib 中的 colormap 来改变伪彩图的颜色:

import numpy as np
import matplotlib.pyplot as plt

# 定义一个二维数组
data = np.random.rand(10, 10)

# 绘制伪彩图
plt.imshow(data, cmap='coolwarm', vmin=0, vmax=1)
plt.colorbar()

plt.show()

在上面的代码中,我们使用 random.rand 函数生成了一个 $10\times10$ 的二维数组 data,然后使用 imshow 函数绘制了一个伪彩图。在 imshow 函数中,我们指定了 colormap 为 'coolwarm',该 colormap 以蓝色和红色为主色调。vminvmax 参数用于指定颜色映射的取值范围,这里我们将它们设置为 0 和 1,以与 data 的取值范围对应。最后,使用 colorbar 函数添加了一个颜色条。

除了使用预定义的 colormap,我们还可以自定义 colormap。下面是一个简单的例子,展示如何自定义一个 colormap:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap

# 定义一个二维数组
data = np.random.rand(10, 10)

# 定义一个自定义 colormap
colors = [(1, 1, 1), (0.5, 0.5, 0.5), (0, 0, 0)]  # 白、灰、黑
cmap = LinearSegmentedColormap.from_list('my_cmap', colors)

# 绘制伪彩图
plt.imshow(data, cmap=cmap, vmin=0, vmax=1)
plt.colorbar()

plt.show()

在上面的代码中,我们首先定义了一个二维数组 data,然后定义了一个自定义 colormap。这里我们使用 LinearSegmentedColormap 类从一个颜色列表中创建了一个 colormap,颜色列表包含了白色、灰色和黑色。然后,使用 imshow 函数绘制了一个伪彩图,并指定了自定义的 colormap。最后,使用 colorbar 函数添加了一个颜色条。