我有一个矩阵,我已经使用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
答案 0 :(得分:0)
根据您的编辑,我相信您的意思是:
boolean
数组,可以告诉您是否应该绘制一个点。float
数组,告诉您该点应该是什么颜色,如果它被绘制。我想称这些数组为:arr_bool
和arr_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
,它将如下所示:
如果我们只绘制颜色,或arr_val
:
将它们放在一起,arr_bool * arr_val
: