2013-03-11 168 views
0

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

我有一个阵列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到1”时,你的意思是0到1之间的浮点数,还是0或1的整数?即@ tcaswell在想什么,它们是二元掩模吗? – askewchan 2013-03-12 16:51:46

+0

另外,当你说“矩阵上的图”时,你的意思是一个像素,点或矩阵元素;或者你的意思是与矩阵有关的其他事物的实际情节? – askewchan 2013-03-12 16:53:20

+0

他们是浮动,0.233343,0.2321241,0.923432等 – 2013-03-12 17:24:59

回答

0

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

  • 你有一个boolean阵列,告诉你Wh是应该绘制以太或不是一个点。
  • 你有一个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

+0

我也是一名软性研究生。给我发电子邮件(查看我的个人资料的地址),我们应该聊天。 – tacaswell 2013-03-13 06:23:52

+0

这是我想要的,但此刻,而不是改变我想要绘制的数据的颜色,它会改变我想要的白色部分的颜色 – 2013-03-13 09:24:10

+0

自己整理出来:),非常感谢您的帮助 – 2013-03-13 11:06:02