gpt4 book ai didi

python - Matplotlib imshow : how to apply a mask on the matrix

转载 作者:太空狗 更新时间:2023-10-29 21:42:35 30 4
gpt4 key购买 nike

我正在尝试以图形方式分析二维数据。 matplotlib.imshow 在这方面非常有用,但我觉得如果我可以从我的矩阵中排除一些单元格,我可以更多地利用它,这些单元格的值超出了感兴趣的范围。我的问题是这些值在我感兴趣的范围内“拉平”了颜色图。排除这些值后,我可以获得更高的颜色分辨率。

我知道如何在我的矩阵上应用掩码来排除这些值,但它在应用掩码后返回一个一维对象:

mask = (myMatrix > lowerBound) & (myMatrix < upperBound)
myMatrix = myMatrix[mask] #returns a 1d array :(

有没有办法将掩码传递给imshow how to reconstruct a 2d array?

最佳答案

您可以使用 numpy.ma.mask_where 来保留数组形状,例如

import numpy as np
import matplotlib.pyplot as plt

lowerBound = 0.25
upperBound = 0.75
myMatrix = np.random.rand(100,100)

myMatrix =np.ma.masked_where((lowerBound < myMatrix) &
(myMatrix < upperBound), myMatrix)


fig,axs=plt.subplots(2,1)
#Plot without mask
axs[0].imshow(myMatrix.data)

#Default is to apply mask
axs[1].imshow(myMatrix)

plt.show()

enter image description here

关于python - Matplotlib imshow : how to apply a mask on the matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32991649/

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