Matplotlib 颜色图范围

Bot*_*ond 5 python matplotlib seaborn colormap

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

import matplotlib.pyplot as plt
cmap = plt.get_cmap('jet')
print cmap(200)
Run Code Online (Sandbox Code Playgroud)

打印

(1.0, 0.46550472040668145, 0.0, 1.0)
Run Code Online (Sandbox Code Playgroud)

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

是否可以定义应用线性映射的最大值和最小值?但是,如果imshow()可以设置 avmin和 avmax参数,我必须在颜色图级别上执行此操作,因为稍后我将向另一个函数提供颜色图。

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

Imp*_*est 10

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

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

color = cmap(norm(200.))
Run Code Online (Sandbox Code Playgroud)