我需要从颜色表中查找任意数字的RGB值。

假设我有一个色图'spring'

from matplotlib import cm

c = cm.get_cmap('spring')


现在假设我有一个01的值,我想从c中提取RGB值

import numpy as np

np.random.seed([3, 1415])
v = np.random.rand(1)

v

0.4449393091533107


如何映射以获得相应的RGB?

如果我看

c._segmentdata

{'blue': ((0.0, 1.0, 1.0), (1.0, 0.0, 0.0)),
 'green': ((0.0, 0.0, 0.0), (1.0, 1.0, 1.0)),
 'red': ((0.0, 1.0, 1.0), (1.0, 1.0, 1.0))}


...我不知所措。

我已经查看了此链接https://matplotlib.org/users/colormapnorms.html

但这告诉我如何对整个2D矩阵进行处理。

最佳答案

除非我误解了您的要求,否则您可以执行以下操作:

c(v[0])


这将为您提供以下RGBA数组:

(1.0, 0.44313725490196076, 0.55686274509803924, 1.0)


因此,如果只需要RGB,则可以根据需要对其进行索引:

>>> c(v[0])[:3]
(1.0, 0.44313725490196076, 0.55686274509803924)


docs中的更多信息

关于python - 使用matplotlib颜色图进行颜色查找,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50440837/

10-13 09:37