Tôi đang cố gắng sử dụng imshow trong matplotlib để vẽ dữ liệu dưới dạng bản đồ nhiệt, nhưng một số giá trị là NaN. Tôi muốn NaN được hiển thị dưới dạng màu đặc biệt không có trong bản đồ màu.
thí dụ:
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()
Hình ảnh kết quả bất ngờ toàn màu xanh lam (màu thấp nhất trong biểu đồ màu máy bay phản lực). Tuy nhiên, nếu tôi thực hiện âm mưu như thế này:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--Sau đó, tôi nhận được thứ gì đó tốt hơn, nhưng các giá trị NaN được vẽ cùng màu với vmin ... Có cách nào duyên dáng để tôi có thể đặt các NaN được vẽ bằng màu đặc biệt (ví dụ: xám hoặc trong suốt) không?
matplotlib.__version__=='1.2.1'
), điều này hoạt động mà không có vấn đề gì.