颜色某些点不同的颜色矩阵matplotlib

时间:2013-03-11 16:43:18

标签: python colors matplotlib

我有一个矩阵,我已经使用self.ax.imshow(arr,cmap=plt.cm.Greys_r, interpolation = 'none')在matplotlib中绘制了它我们都是相同的颜色。但是,我有另一个数组,其大小与为矩阵绘制的数组相同。数组包含从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

1 个答案:

答案 0 :(得分:0)

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

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

我想称这些数组为:arr_boolarr_val

将它们相乘,你会在True时得到一个浮点数,但在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,它将如下所示: boolean array 如果我们只绘制颜色,或arr_valvalue array 将它们放在一起,arr_bool * arr_valcolored array