Python 带有彩色贴图和alpha序列的Pyplot图像
通过pyplot函数,我可以绘制(M,N)大小的图像,其中(M,N)大小的数组中的每个值都与颜色映射中的颜色相关联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
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