2

我想使用 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()

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

说我只有这个:

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

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

4

1 回答 1

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()

颜色图示例

于 2012-07-06T19:16:11.483 回答