首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不要在二维热图上显示零值

不要在二维热图上显示零值
EN

Stack Overflow用户
提问于 2016-10-09 07:31:56
回答 1查看 7.7K关注 0票数 8

我想要绘制一张西利康晶片模具的2D地图。因此,只有中心部分有值,角有值0。我使用matplotlib的plt.imshow获得一个简单的地图,如下所示:

代码语言:javascript
复制
data = np.array([[ 0. ,  0. ,  1. ,  1. ,  0. ,  0. ],
       [ 0. ,  1. ,  1. ,  1. ,  1. ,  0. ],
       [ 1. ,  2. ,  0.1,  2. ,  2. ,  1. ],
       [ 1. ,  2. ,  2. ,  0.1,  2. ,  1. ],
       [ 0. ,  1. ,  1. ,  1. ,  1. ,  0. ],
       [ 0. ,  0. ,  1. ,  1. ,  0. ,  0. ]])

plt.figure(1)
plt.imshow(data ,interpolation='none')
plt.colorbar()

我得到了以下地图:

有没有办法去除深蓝色区域中的值为零,同时保留‘晶圆’的形状(绿色,红色和浅蓝区域)?这意味着角将是空白空间,而其余的则保留颜色配置。

或者有更好的功能,我可以用来获得这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-09 09:01:10

有两种方法可以摆脱深蓝色的角落:

可以用零值标记数据:

代码语言:javascript
复制
data[data == 0] = np.nan
plt.imshow(data, interpolation = 'none', vmin = 0)

或者您可以为imshow创建一个蒙面数组

代码语言:javascript
复制
data_masked = np.ma.masked_where(data == 0, data)
plt.imshow(data_masked, interpolation = 'none', vmin = 0)

以上两种解决方案都解决了您的问题,尽管使用掩码的方法有点笼统。

如果要保留确切的颜色配置,需要手动设置用于绘制图像的vmin/vmax参数。将vmin = 0传递给上面的plt.imshow确保丢弃的零仍然显示在颜色栏上。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39941128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档