Matplotlib 颜色图范围

Matplotlib colormap range

我正在尝试了解 matplotlib 颜色图的工作原理。考虑以下代码:

import matplotlib.pyplot as plt
cmap = plt.get_cmap('jet')
print cmap(200)

打印

(1.0, 0.46550472040668145, 0.0, 1.0)

所以我的理解是颜色图将数值(在本例中为 200)映射到颜色值(在本例中为 1.0、0.46550472040668145、0.0、1.0)。 matplotlib 如何为其颜色图设置范围?

是否可以定义应用线性映射的最大值和最小值?使用 imshow() 可以设置 vminvmax 参数,但是,我必须在颜色图级别进行设置,因为稍后我将颜色图提供给另一个函数。

这可能是一个关于颜色图如何工作的更普遍的问题;例如,在 seaborn 的调色板中,也没有范围选项。

颜色图的范围始终介于 0 和 1 之间。您需要将数据标准化到该范围。例如,要将 0 到 400 之间的范围线性映射到颜色图的颜色,

import matplotlib.pyplot as plt
cmap = plt.get_cmap('viridis')
norm = plt.Normalize(0, 400)

color = cmap(norm(200.))