matplotlib.colors.LinearSegmentedColormap.from_list("", ["black", "blue", "red", "yellow"])
然而,我不建议使用这种颜色映射。相反,使用任何一个 "viridis"
、"magma"
、"plasma"
或 "inferno"
。它们是感知上均匀的,因此不会产生不必要的伪像。
下面是插值地图和 "magma"
之间的比较。你可以看到插值地图创建了“环”,这样观察者肯定会误解所绘制的形状。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors as mcolors
x = np.linspace(-2,2, 101)
X,Y = np.meshgrid(x,x)
Z = np.exp(-X**2-Y**2)
fig, (ax1, ax2) = plt.subplots(ncols=2)
im1 = ax1.imshow(Z, cmap="magma")
cmap = mcolors.LinearSegmentedColormap.from_list("", ["black", "blue", "red", "yellow"])
im2 = ax2.imshow(Z, cmap=cmap)
fig.colorbar(im1, ax=ax1, orientation="horizontal")
fig.colorbar(im2, ax=ax2, orientation="horizontal")
plt.show()
更多阅读材料