我正在尝试创建一个覆盖三个独立数据集的二维直方图。我的想法是将数据集着色为红色,绿色和蓝色,以便bin中红色数据的密度对应于该bin的颜色的红色值,同样对应于蓝色和绿色。
有examples这个,但据我所知,在matplotlib中没有实现多色绘图。
访问表单网格
[[ (r,g,b) , (r,g,b) ... (r,g,b) ] ,
[ (r,g,b) , (r,g,b) ... ] ,
.......
[ (r,g,b) , (r,g,b) ... (r,g,b) ]]
完全没问题。问题是我发现的所有绘图功能都想将单个bin值映射到颜色标度,它们不允许我设置bin的全颜色值。
我应该寻找一些原始的吗?是否已经有直方图来做这个?
答案 0 :(得分:2)
如果您的数据已经是RGB格式(加权在0和1之间),那么imshow
会将(M,N,3)
形数组解释为RGB数组。使用interpolation='nearest'
将输出像素化:
import numpy as np
import matplotlib.pyplot as plt
# Example pixel array
pixels = np.random.rand(100,100,3)
reds = pixels[:,:,1:] = 0. # Remove B and G
plt.imshow(reds, interpolation='nearest')
如果它存储为元组列表,那么np.array(...)
将进行转换。