自定义离散色图

如果你有预定义范围并希望对这些范围使用特定颜色,则可以声明自定义色彩映射。例如:

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

x = np.linspace(-2,2,500)
y = np.linspace(-2,2,500)
XX, YY = np.meshgrid(x, y)
Z = np.sin(XX) * np.cos(YY)

cmap = colors.ListedColormap(['red', '#000000','#444444', '#666666', '#ffffff', 'blue', 'orange'])
boundaries = [-1, -0.9, -0.6, -0.3, 0, 0.3, 0.6, 1]
norm = colors.BoundaryNorm(boundaries, cmap.N, clip=True)

plt.pcolormesh(x,y,Z, cmap=cmap, norm=norm)
plt.colorbar()
plt.show()

产生

StackOverflow 文档

颜色 i 将用于边界 ii + 1 之间的值。颜色可以通过名称('red''green'),HTML 代码('#ffaa44''#441188')或 RGB 元组((0.2, 0.9, 0.45))指定。