Я намагаюся використовувати imshow у matplotlib для побудови даних як теплової карти, але деякі значення - NaN. Я хотів би, щоб NaN відображались як особливий колір, якого немає в кольоровій карті.
приклад:
import numpy as np
import matplotlib.pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
a = np.arange(25).reshape((5,5)).astype(float)
a[3,:] = np.nan
ax.imshow(a, interpolation='nearest')
f.canvas.draw()
Отримане зображення несподівано стає блакитним (найнижчий колір у кольоровій карті). Однак, якщо я буду робити змову так:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
- тоді я отримую щось краще, але значення NaN намальовані тим же кольором, що і vmin ... Чи є витончений спосіб встановити NaN для малювання спеціальним кольором (наприклад, сірим або прозорим)?
matplotlib.__version__=='1.2.1'
) це працює без проблем.