在matplotlab pcolor中设置颜色

Ric*_*son 2 python plot matplotlib

我想使用matplotlib在python中绘制类似第二个图像的内容: 在此输入图像描述

这背后的代码在这里:

#!/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()
Run Code Online (Sandbox Code Playgroud)

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

说我只是这个:

a = array([True,False],[False,False])
Run Code Online (Sandbox Code Playgroud)

我应该将[0,1]中的值分配给True和False?

Sig*_*gyF 5

一种简单的方法是制作自定义色彩映射.在您的情况下,您可以只使用2个值制作颜色图.

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()
Run Code Online (Sandbox Code Playgroud)

Colormap示例