相关疑难解决方法(0)

如何在matplotlib中使用imshow将NaN值绘制为特殊颜色?

我试图在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用特殊颜色绘制(例如:灰色或透明)?

python matplotlib nan

80
推荐指数
2
解决办法
4万
查看次数

标签 统计

matplotlib ×1

nan ×1

python ×1