我想绘制sillicon晶圆模具的2D地图。因此,只有中心部分有值,角落的值为0.我用matplotlib的plt.imshow来获得如下的简单地图:
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()
有没有办法去除值为零的深蓝色区域,同时保留“晶圆”的形状。 (绿色,红色和浅蓝色区域)?意味着角落将是空白,而其余角落保留颜色配置。
还是有更好的功能可以用来获得它吗?
答案 0 :(得分:5)
有两种方法可以摆脱深蓝色的角落:
您可以使用零值标记数据:
data[data == 0] = np.nan
plt.imshow(data, interpolation = 'none', vmin = 0)
或者您可以为imshow
:
data_masked = np.ma.masked_where(data == 0, data)
plt.imshow(data_masked, interpolation = 'none', vmin = 0)
上面的两个解决方案都解决了你的问题,虽然使用掩码更为通用。
如果要保留确切的颜色配置,则需要手动设置vmin
/ vmax
参数以绘制图像。将vmin = 0
传递到plt.imshow
以上可确保丢弃的零仍显示在颜色条上。