在 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 以蓝色和红色为主色调。vmin
和 vmax
参数用于指定颜色映射的取值范围,这里我们将它们设置为 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
函数添加了一个颜色条。