在2d直方图中设置bin颜色(多色图)

时间:2012-06-03 11:36:38

标签: python matplotlib

我正在尝试创建一个覆盖三个独立数据集的二维直方图。我的想法是将数据集着色为红色,绿色和蓝色,以便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的全颜色值。

我应该寻找一些原始的吗?是否已经有直方图来做这个?

1 个答案:

答案 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(...)将进行转换。