为值指定颜色

2024-09-30 10:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用matplotlib或colormap为值指定颜色。 更具体地说:如果我有一个小值(假设-14是最小值)和一个高值(假设86是最大值),我希望打印值较低的对象更红,而值较高的对象更绿(-14-->;完全红色;86--gt;完全绿色)。对于值在-14和86之间的对象,我希望为它们指定介于红色和绿色之间的颜色。在

我知道有一个叫做“RdYlGr”的颜色图,从红到黄,到绿。也许可以用这张地图?但是怎么做呢?在

概述:如何使用maplotlib的colormaps将浮点数(eg,从-14到86的6.2)映射到相应的十六进制颜色字符串(eg,“#A0CBE2”)。在


Tags: 对象gtmatplotlib颜色地图eg浮点数绿色
1条回答
网友
1楼 · 发布于 2024-09-30 10:29:29

您可以直接使用colormaps来完成大部分工作,但是matplotlib提供的是rgb而不是hex值,因此您需要自己执行hex。下面是一个例子:

import matplotlib.cm as cm
import matplotlib.colors as colors

norm = colors.Normalize(vmin=-14, vmax=86)
f2rgb = cm.ScalarMappable(norm=norm, cmap=cm.get_cmap('RdYlGn'))

def f2hex(f2rgb, f):
    rgb = f2rgb.to_rgba(f)[:3]
    return '#%02x%02x%02x' % tuple([255*fc for fc in rgb])

print f2hex(f2rgb, -13.5)  #   gives #a60126  ie, dark red
print f2hex(f2rgb, 85.5)   #   gives #016937  ie, dark green with some blue

相关问题 更多 >

    热门问题