0

我有一个我在 matplotlib 中绘制的矩阵self.ax.imshow(arr,cmap=plt.cm.Greys_r, interpolation = 'none'),目前我使用它们都是相同的颜色。但是我有另一个数组,它的大小与为矩阵绘制的大小相同。该数组包含从 0 到 1 的数字。该数组中的每个数字对应于矩阵上的一个图。我怎样才能使数字0到1的数组对应于矩阵上绘图的颜色

我有一个numberlist = [(1,34),(2,35),(5,78) etc]到 310 的数组然后我做

data = np.array(number list)
N=data.max()+5
arr=np.ones((N,N),dtype='bool')
arr[data[:,1],data[:,0]]=0

然后是上面的 imshow

4

1 回答 1

0

根据您的编辑,我相信您的意思是:

  • 你有一个boolean数组告诉你是否应该绘制一个点。
  • 你有一个float数组,告诉你该点应该是什么颜色,如果它被绘制的话。

我想调用这些数组:arr_boolarr_val.

将它们相乘,你会得到一个 float whenTrue但一个零 when False,我们可以使用他们的产品着色:

N = 10
arr_bool = np.random.random_integers(0,1,(N,N))
arr_val  = np.random.rand(N,N)
imshow(arr_bool*arr_val, cmap = cm.spectral_r, interpolation = 'nearest')

因此,如果我们只绘制arr_bool它,它将如下所示: 布尔数组 如果我们只绘制颜色,或者arr_val: 值数组 将它们放在一起,arr_bool * arr_val: 彩色阵列

于 2013-03-11T16:53:07.880 回答