#import colormap
from matplotlib import cm
#normalize item number values to colormap
norm = matplotlib.colors.Normalize(vmin=0, vmax=1000)
#colormap possible values = viridis, jet, spectral
rgba_color = cm.jet(norm(400),bytes=True)
#400 is one of value between 0 and 1000
为了得到rgba整数值而不是浮点值,我们可以
为了根据Ffisegydd的答案简化代码,代码如下:
为了构建来自Ffisegydd和amaliammr的解决方案,下面是一个示例,我们为自定义颜色映射创建CSV表示:
您可以使用下面的代码来实现这一点,而且问题中的代码实际上与您需要的非常接近,您所要做的只是调用您拥有的
cmap
对象。对于超出范围[0.0,1.0]的值,它将返回欠色和过色(分别)。默认情况下,这是该范围内的最小和最大颜色(so 0.0和1.0)。可以使用
cmap.set_under()
和cmap.set_over()
更改此默认值。对于像
np.nan
和np.inf
这样的“特殊”数字,默认值是使用0.0值,这可以使用cmap.set_bad()
进行更改,类似于上面的under和over。最后,您可能需要规范化数据,使其符合范围} 来完成,如下面的小示例所示,其中参数
[0.0, 1.0]
。这可以使用^{vmin
和vmax
分别描述应该映射到0.0和1.0的数字。对数标准化符(matplotlib.colors.LogNorm)也可用于值范围较大的数据范围。
(感谢Joe Kington和tcaswell对如何改进答案的建议。)
相关问题 更多 >
编程相关推荐