Python 使用不同的颜色矩阵matplotlib为某些点着色
我在matplotlib中绘制了一个矩阵,使用的是Python 使用不同的颜色矩阵matplotlib为某些点着色,python,colors,matplotlib,Python,Colors,Matplotlib,我在matplotlib中绘制了一个矩阵,使用的是self.ax.imshow(arr,cmap=plt.cm.Greys\r,interpolation='none')此时它们都是相同的颜色。但是,我有另一个数组,它的大小与为矩阵绘制的数组的大小相同。数组包含从0到1的数字。此数组中的每个数字对应于矩阵上的一个图。 如何使数字为0到1的数组与矩阵上绘图的颜色相对应 我有一个数组numberlist=[(1,34),(2,35),(5,78)等]到310 那么我会的 data = np.arra
self.ax.imshow(arr,cmap=plt.cm.Greys\r,interpolation='none')
此时它们都是相同的颜色。但是,我有另一个数组,它的大小与为矩阵绘制的数组的大小相同。数组包含从0到1的数字。此数组中的每个数字对应于矩阵上的一个图。
如何使数字为0到1的数组与矩阵上绘图的颜色相对应
我有一个数组numberlist=[(1,34),(2,35),(5,78)等]
到310
那么我会的
data = np.array(number list)
N=data.max()+5
arr=np.ones((N,N),dtype='bool')
arr[data[:,1],data[:,0]]=0
那么上面的imshow基于您的编辑,我相信您的意思是:
- 您有一个
数组,它告诉您是否应该绘制点boolean
- 您有一个
数组,它告诉您如果绘制该点,该点应该是什么颜色float
arr\u bool
和arr\u 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\u bool
,它将如下所示:
如果我们只绘制颜色,或者arr\u val
:
把它们放在一起,arr\u bool*arr\u val
:
John,当你说“数字从0到1”时,你的意思是0到1之间的浮点数,还是整数0或1?i、 例如,它们是@tcaswell所想的二进制掩码吗?同样,当你说“矩阵上的一个图”时,你是指一个像素、点还是矩阵元素;或者你是指与矩阵相关的其他东西的实际绘图?它们是浮点数、0.233343、0.2321241、0.923432等。编辑有帮助。所以你有一个二进制/布尔矩阵,
arr
,但是什么是浮点数组呢?我想我算出来了,请看我答案的编辑。我也是一名软物质研究生。给我发一封电子邮件(查看我的个人资料了解地址),我们应该聊天。这是我想要的,但目前,它没有改变我想要绘制的数据的颜色,而是改变了我想要白色的部分的颜色