Проблема с ответом, предоставленным Дагом, состоит в том, что он основан на том факте, что цветовая карта отображает нулевые значения в белый. Это означает, что цветовые карты, которые не включают белый цвет, бесполезны. Ключ для решения - функция cm.set_bad
. Вы маскируете ненужные части матрицы с помощью None или с масками NumPy и set_bad
на белый вместо черного по умолчанию. Принимая пример Дуга, мы получаем следующее:
import numpy as NP
from matplotlib import pyplot as PLT
from matplotlib import cm as CM
A = NP.random.randint(10, 100, 100).reshape(10, 10)
mask = NP.tri(A.shape[0], k=-1)
A = NP.ma.array(A, mask=mask) # mask out the lower triangle
fig = PLT.figure()
ax1 = fig.add_subplot(111)
cmap = CM.get_cmap('jet', 10) # jet doesn't have white color
cmap.set_bad('w') # default value is 'k'
ax1.imshow(A, interpolation="nearest", cmap=cmap)
ax1.grid(True)
PLT.show()