2012-07-06 153 views
2

我想用matplotlib绘制像在Python第二如下图: enter image description here设置颜色matplotlab令pColor

这背后的代码是here

#!/usr/bin/env python 

from pylab import * 

Z = rand(6,10) 

subplot(2,1,1) 
c = pcolor(Z) 
title('default: no edges') 

subplot(2,1,2) 
c = pcolor(Z, edgecolors='k', linewidths=4) 
title('thick edges') 

show() 

现在,我有一个列表布尔值,我只是想画一个灰色矩形每个True值和红色为每个False值。

说我只有这个:

a = array([True,False],[False,False]) 

[0,1]我应该分配给真正的和为False在什么样的价值?

+0

在Python解释器只需键入'真正的== 1'或'假== 0',你将有你的答案 – gcalmettes 2012-07-06 15:31:37

回答

5

一个简单的方法来做到这一点是让一个自定义颜色表。在你的情况下,你可以制作一个只有2个值的colormap

from pylab import * 
import matplotlib.colors 

figure(figsize=(3,9)) 
Z = rand(6,10) 

subplot(3,1,1) 
c = pcolor(Z) 
title('default: no edges') 

subplot(3,1,2) 
c = pcolor(Z, edgecolors='k', linewidths=4) 
title('thick edges') 
# use Z values greater than 0.5 as an example 
Zbool = Z > 0.5 

subplot(3,1,3) 
cmap = matplotlib.colors.ListedColormap(['red','grey']) 
c = pcolor(Zbool, edgecolors='k', linewidths=4, cmap=cmap) 
title('thick boolean edges gray') 

show() 

Colormap example