Python 带有彩色贴图和alpha序列的Pyplot图像

Python 带有彩色贴图和alpha序列的Pyplot图像,python,matplotlib,colors,Python,Matplotlib,Colors,通过pyplot函数,我可以绘制(M,N)大小的图像,其中(M,N)大小的数组中的每个值都与颜色映射中的颜色相关联 import numpy as np import matplotlib.pyplot as plt A = np.random.rand(5,5) plt.imshow(A, cmap='jet') plt.colorbar() plt.show() 我想展示一个(2,M,N)大小的数组(我们称之为B)B[0]给出色调,B[1]是alpha。这里,B[0]将与第一个示例中的A

通过pyplot函数,我可以绘制(M,N)大小的图像,其中(M,N)大小的数组中的每个值都与颜色映射中的颜色相关联

import numpy as np
import matplotlib.pyplot as plt

A = np.random.rand(5,5)
plt.imshow(A, cmap='jet')
plt.colorbar()
plt.show()
我想展示一个(2,M,N)大小的数组(我们称之为
B
B[0]
给出色调,
B[1]
是alpha。这里,
B[0]
将与第一个示例中的
A
相同

我想写一些类似于
plt.imshow(B[0],cmap='jet',alpha=B[1])
。但是对于整个图像,
alpha
的值必须相同,因为
alpha
选项必须是标量或无

使用
imshow
,我还可以指定(M,N,3)或(M,N,4)数组,其中R,G,B和alpha的值是给定的。但是,我不知道如何从初始(M,N)大小的数组
A
中获取RGB值


我尝试使用HSV方案根据我的值设置颜色,然后转换为RGB并使用这些颜色打印

from matplotlib import colors

B = np.random.rand(2,5,5)

hue = B[0]
sat = B[1]
val = np.ones(B[0].shape)

rgb = colors.hsv_to_rgb(np.array([hue, sat, val]).T)

plt.imshow(rgb)
plt.show()
但是,我不知道如何根据
B
中的实际值制作颜色条


我打算做这样的事情:
其中,颜色条的垂直部分显示
B[0]
中的值,而颜色条的水平部分显示
B[1]
中的值

第一部分相对简单:


将numpy作为np导入
将matplotlib.pyplot作为plt导入
A=np.rand.rand(5,5)
cmap=plt.get_cmap('jet'))
rgba_img=cmap(A)
rgba_img[:,:,3]=np.random.rand(5,5)
plt.imshow(rgba_img)
plt.colorbar()
plt.show()

制作色条更难。基本上,您需要将用于制作颜色条的pcolor替换为另一个外观与您想要的一样的颜色条

但在这里,颜色条与数据无关。颜色栏使用viridis colormap,图像使用jet colormap