1

我正在尝试创建一个覆盖三个单独数据集的二维直方图。我的想法是将数据集着色为红色、绿色和蓝色,以便 bin 中红色数据的密度对应于该 bin 颜色的红色值,蓝色和绿色也是如此。

有这方面的例子,但据我所知,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 的全色值。

我应该寻找一些原始的东西吗?是否已经有直方图可以做到这一点?

4

1 回答 1

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')

如果它存储为元组列表,则 anp.array(...)将进行转换。

于 2012-06-03T12:57:23.903 回答