我试图在matplotlib中使用imshow将数据绘制为热图,但是一些值是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()
Run Code Online (Sandbox Code Playgroud)
结果图像出乎意料地全是蓝色(喷射色图中的最低颜色).但是,如果我这样做的情节:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
Run Code Online (Sandbox Code Playgroud)
- 然后我得到了更好的东西,但是NaN值被绘制成与vmin相同的颜色......是否有一种优雅的方式可以设置NaN用特殊颜色绘制(例如:灰色或透明)?