ฉันพยายามใช้ imshow ใน matplotlib เพื่อพล็อตข้อมูลเป็นแผนที่ความร้อน แต่ค่าบางค่าเป็น NaN ฉันต้องการให้ NaN แสดงผลเป็นสีพิเศษที่ไม่พบใน colormap
ตัวอย่าง:
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()
ภาพที่ได้จะเป็นสีฟ้าทั้งหมดโดยไม่คาดคิด (สีต่ำสุดในเจ็ท Colormap) อย่างไรก็ตามถ้าฉันวางแผนเช่นนี้:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
- แล้วฉันจะได้อะไรที่ดีขึ้น แต่ค่า NaN ถูกวาดเป็นสีเดียวกับ vmin ... มีวิธีที่สง่างามไหมที่ฉันสามารถตั้งค่า NaN ให้วาดด้วยสีพิเศษ (เช่นเทาหรือโปร่งใส)
matplotlib.__version__=='1.2.1'
) ใช้งานได้โดยไม่มีปัญหา