Matplotlib 将亮度转换为rgb阵列

Matplotlib 将亮度转换为rgb阵列,matplotlib,Matplotlib,我正在尝试将亮度(nxmx1阵列)转换为rgb阵列(nxmx3) 想法是使用rgb数组为imshow()获取rgba数组。我所寻找的结果与我将亮度数组馈送到imshow()时得到的结果相同,但它让我可以控制alpha。是否有一些简单的函数可以执行此操作 在matplotlib中可以使用一些有用的东西来实现所需的功能 您可以轻松获取一组数字,并给出适当的归一化和颜色贴图,将其转换为rgba值: import matplotlib.pyplot as plt # define a norm whi

我正在尝试将亮度(nxmx1阵列)转换为rgb阵列(nxmx3)


想法是使用rgb数组为
imshow()
获取rgba数组。我所寻找的结果与我将亮度数组馈送到
imshow()
时得到的结果相同,但它让我可以控制alpha。是否有一些简单的函数可以执行此操作

在matplotlib中可以使用一些有用的东西来实现所需的功能

您可以轻松获取一组数字,并给出适当的归一化和颜色贴图,将其转换为rgba值:

import matplotlib.pyplot as plt

# define a norm which scales data from the range 20-30 to 0-1
norm = plt.normalize(vmin=20, vmax=30)
cmap = plt.get_cmap('hot')
有了这些,您可以做一些有用的事情:

>>> # put data in the range 0-1 
>>> norm([20, 25, 30])
masked_array(data = [ 0.   0.5  1. ],
             mask = False,
             fill_value = 1e+20)

# turn numbers in the range 0-1 into colours defined in the cmap
>>> cmap([0, 0.5, 1])
array([[ 0.0416   ,  0.       ,  0.       ,  1.       ],
       [ 1.       ,  0.3593141,  0.       ,  1.       ],
       [ 1.       ,  1.       ,  1.       ,  1.       ]])

这就是你的意思,还是你想做别的事?

正是我想做的。。。不知何故,我错过了尝试cmap。是的,这是使对象可调用的最大问题。很高兴这有帮助。