加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在pylab中显示不同颜色的多个蒙版

发布时间:2020-12-16 21:59:16 所属栏目:Python 来源:网络整理
导读:我有一个数组,包括体面的观察,不相关的观察(我想掩盖),以及没有观察的区域(我也想掩盖).我希望将此数组显示为具有两个单独掩码的图像(使用pylab.imshow),其中每个掩码以不同的颜色显示. 我找到了某种颜色的单个掩码(here)的代码,但两个不同的掩码没有任何代

我有一个数组,包括体面的观察,不相关的观察(我想掩盖),以及没有观察的区域(我也想掩盖).我希望将此数组显示为具有两个单独掩码的图像(使用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')

可以修改val1和val2以获得所需的颜色.

您还可以明确设置颜色,但需要更多工作:

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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读