理解 matplotlib set_bad 颜色图

understanding matplotlib set_bad colormap

我是运行下面的代码片段:

from matplotlib.colors import ListedColormap

cm = ListedColormap(['green','red'])
cm.set_bad(color="black")
cm(np.nan)

我希望 cm(np.nan) 是 return 黑色,但它是 return 绿色。 如何确定bad/masked/nan/missing值对应的颜色?

cm(np.nan) 对于早期版本的 matplotlib 会 return set_under 的颜色(对你来说似乎默认为绿色)而不是 set_bad。这已在 3.2 版中修复,请参阅 this PR

在版本 >= 3.2 上,这按预期工作:

from matplotlib.colors import ListedColormap

matplotlib.__version__
# '3.3.3' 

cm = ListedColormap(['green','red'])
cm.set_bad(color="black")

cm(np.nan)
# (0.0, 0.0, 0.0, 1.0)

IOW,只需 pip install --update matplotlib 即可获得具有预期行为的最新版本。