Matplotlib颜色图范围

时间:2019-08-28 22:13:51

标签: python matplotlib seaborn colormap

我正在尝试了解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()可以设置一个vmin和一个vmax参数,但是,我将不得不在色图级别进行此操作,因为稍后我将色图提供给另一个函数。

这可能是关于颜色映射如何工作的更一般的问题;例如,在seaborn的调色板中,该范围也没有选择。

1 个答案:

答案 0 :(得分:2)

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

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

color = cmap(norm(200.))