我使用等高线图作为电极阵列的2d表示。当电极有效时,等值线图上对应于它们的像素具有值1。当电极不活动时,等值线图上对应于它们的像素具有值0。阵列上的其他所有内容(保持电极的材料)的值为-1。
对于可视化,我想制作一个自定义的色彩Map表,它将值为1的任何内容设置为白色,将值为0的任何内容设置为黑色,将其他任何内容设置为灰色。
我去了这个栈交换岗位:matplotlib colormap without normalization
基于此,我想也许可以做以下几点
def cmap(val):
if val == 0:
return "black"
elif val == 1:
return "white"
else:
return "grey"
plt.contourf(self.x, self.y, self.activity_meshgrid, cmap = cmap(self.activity_meshgrid))
但是,这会引发一个错误,即这是不明确的,我应该使用。any()或.all()当我使用。any()或.all(),我意识到它不会接受以这种方式传递给它的颜色,因为只有颜色Map是允许的值。这使我认为不可能以这种方式将色彩Map表定义为函数。
2条答案
按热度按时间uxh89sit1#
也许是这个
该图将是这样的(类似):
64jmpszr2#
其他选项: