gpt4 book ai didi

python - 在pylab中以不同颜色显示多个掩码

转载 作者:太空狗 更新时间:2023-10-30 01:16:28 24 4
gpt4 key购买 nike

我有一个数组,其中包括适当的观察结果、不相关的观察结果(我想屏蔽掉)和没有观察结果的区域(我也想屏蔽掉)。我想将此数组显示为带有两个单独蒙版的图像(使用 pylab.imshow),其中每个蒙版以不同颜色显示。

我找到了某种颜色的单个面具 ( here ) 的代码,但没有找到两个不同面具的代码:

masked_array = np.ma.array (a, mask=np.isnan(a))
cmap = matplotlib.cm.jet
cmap.set_bad('w',1.)
ax.imshow(masked_array, interpolation='nearest', cmap=cmap)

如果可能的话,我想避免使用严重扭曲的颜色贴图,但接受这是一个选项。

最佳答案

根据某些条件,您可以简单地将数组中的值替换为某个固定值。例如,如果你想屏蔽大于 1 和小于 -1 的元素:

val1, val2 = 0.5, 1
a[a<-1]= val1
a[a>1] = val2
ax.imshow(a, interpolation='nearest')

val1val2 可以修改以获得您想要的颜色。

您也可以显式设置颜色,但这需要更多工作:

import matplotlib.pyplot as plt
from matplotlib import colors, cm

a = np.random.randn(10,10)

norm = colors.normalize()
cmap = cm.hsv
a_colors = cmap(norm(a))

col1 = colors.colorConverter.to_rgba('w')
col2 = colors.colorConverter.to_rgba('k')

a_colors[a<-0.1,:] = col1
a_colors[a>0.1,:] = col2
plt.imshow(a_colors, interpolation='nearest')
plt.show()

关于python - 在pylab中以不同颜色显示多个掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13384221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com