Python:如何热映射[0,1]范围内的值?

时间:2017-03-23 11:58:11

标签: python matplotlib colors heatmap

我有一组从0到1的概率,我想将它们映射到类似堆映射的颜色,例如其中一个:

enter image description here

然后颜色将用于 matplotlib 图表。

如何在Python中以最简单的方式实现?

2 个答案:

答案 0 :(得分:3)

如果问题确实是如何从matplotlib中的预先定义的色彩映射获取对应于0到1之间的值的rgb颜色,那么答案就是

BigNumberElement &

打印import matplotlib.pyplot as plt print plt.cm.jet(0.5) 。这是rgba元组,所以最后一个条目是alpha(=透明度)。

答案 1 :(得分:1)

如果我正确理解你的问题(根据一些预定义的颜色图,将0到1之间的数字转换为rgba值),我认为matplotlib.colors和matplotlib.cm可以做你需要的。假设你正在使用'jet'色彩映射,我想你的照片是这样的:

from matplotlib import pyplot as plt
from matplotlib import colors
from matplotlib import cm as cmx
jet = plt.get_cmap('jet')
cNorm  = colors.Normalize(vmin=0, vmax=1)
scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=jet)
scalarMap.to_rgba(0)
# returns (0.0, 0.0, 0.5, 1.0), i.e. blue
scalarMap.to_rgba(0.5)
# returns (0.49019607843137247, 1.0, 0.47754585705249841, 1.0) i.e. green
scalarMap.to_rgba(1)
# returns (0.5, 0.0, 0.0, 1.0) i.e. red