2012-07-06 151 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