Mapa ciepła w skali szarości Matplotlib z wizualnie odrębnymi polami kwadratów „NA”

Tworzę mapę termiczną do wykorzystania w publikacji. Publikacja jest ograniczona do druku czarno-białego, więc tworzę mapę termiczną w skali szarości. Mam problem z tym, że w mapie cieplnej są pewne kwadraty, które nie mają zastosowania, które chcę wizualnie odróżnić od innych komórek. Rozumiem, że może to (?) Być możliwe przy użyciu maskowanych tablic numpy, jeśli mapa cieplna jest zabarwiona na obu końcach skali, a zamaskowane pola mogą po prostu wyświetlać się jako białe. Problem polega na tym, że chciałbym wykorzystać pełne spektrum od białego do czarnego, aby zilustrować zakres danych innych niż NA. Czy w każdym razie należy odróżnić komórki NA od innego mechanizmu wizualnego, takiego jak przekreślenie?

Poniżej znajduje się minimalny przykład skali szarości z maskowaną tablicą (dostosowany ztutaj). Wartości NA są prawdopodobnie maskowane tutaj, po prostu nie możesz powiedzieć, ponieważ używa bieli, która jest już używana jako kolor na górnym końcu prawidłowego widma.

import numpy as np
from pylab import *

z = rand(10, 25)
z = np.ma.masked_array(z,mask=z>0.8)

c = pcolor(z)
set_cmap('gray')
colorbar()
c = pcolor(z, edgecolors='w', linewidths=1)
axis([0,25,0,10])
savefig('plt.png')
show()

questionAnswers(2)

yourAnswerToTheQuestion