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 các NaN được hiển thị dưới dạng một màu đặc biệt không được tìm thấy trong bản đồ màu.Làm thế nào tôi có thể vẽ các giá trị NaN dưới dạng một màu đặc biệt với imshow trong matplotlib?
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ả là bất ngờ tất cả các màu xanh (màu thấp nhất trong bản đồ màu jet). Tuy nhiên, nếu tôi làm âm mưu như thế này:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--then tôi nhận được một cái gì đó tốt hơn, nhưng các giá trị NaN được rút ra cùng một màu sắc như Vmin ... Có một cách duyên dáng mà tôi có thể thiết lập để Nans được vẽ bằng một màu đặc biệt (ví dụ: màu xám hoặc trong suốt)?
Một vài năm sau ('matplotlib .__ phiên bản __ == '1.2.1''), điều này không có vấn đề gì. –