在 matplotlib 中为 NaN 值设置颜色

Posted

技术标签:

【中文标题】在 matplotlib 中为 NaN 值设置颜色【英文标题】:Set color for NaN values in matplotlib 【发布时间】:2016-12-12 12:52:01 【问题描述】:

我正在尝试绘制一些数组的颜色,并将一些值转换为 np.nan(以便于解释)并在绘制时期望不同的颜色(白色?),而不是导致绘图和颜色条出现问题。

#this is before converted to nan
array = np.random.rand(4,10)
plt.pcolor(array)
plt.colorbar(orientation='horizontal')                

#conditional value converted to nan
array = np.random.rand(4,10)
array[array<0.5]=np.nan
plt.pcolor(array)
plt.colorbar(orientation='horizontal')                

有什么建议吗?

【问题讨论】:

【参考方案1】:

其中一个解决方案是绘制掩码数组,如下所示:

import matplotlib.pylab as plt
import numpy as np

#conditional value converted to nan
array = np.random.rand(4,10)
array[array<0.5]=np.nan
m = np.ma.masked_where(np.isnan(array),array)
plt.pcolor(m)
plt.colorbar(orientation='horizontal')       
plt.show()

【讨论】:

以上是关于在 matplotlib 中为 NaN 值设置颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何仅更改 NAN 值 matplotlib 在轮廓图中的颜色

在 Pandas v0.20 和 matplotlib 中为条形分配颜色的问题

在 Python 3.2 中为 Matplotlib 的底图填充不同颜色的每个邮政编码

如何从 for 循环中为 matplotlib 图设置动画

如何在 Matlab 中为绘图的特定 x 值设置背景颜色?

matplotlib自定义设置plt.colorbar函数配置颜色条的刻度数实战:自定义设置颜色条刻度并为刻度值进行命名和标签化