我正在尝试了解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
的调色板中,该范围也没有选择。
答案 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.))