我试图屏蔽一个数据数组,因此对于数组中小于 9 的每个值,我希望将其设置为 0。每个大于 9 的值,我都希望设置为 1。这样当我乘以该数组时通过我希望屏蔽的数组,任何值都将乘以 0(从而屏蔽该数据)或 (1),即该数据将保留。希望这是有道理的...!
我想知道 matplotlib 如何将两个相同维度的数组绘制在一起,假设数组中的一个元素是“nan”而另一个对应元素是 42。matplotlib 会自动不绘制这个值吗?
我想会的,但我只想对这一点进行一些验证。非常感谢。
最佳答案
如果你屏蔽数组,你可以正常绘制它们。如果您添加两个掩码数组,掩码将正确组合,如下例所示。我生成了 0 到 20 之间的随机数据,并屏蔽了两个数组中所有小于 9 的值。
import numpy as np
import matplotlib.pyplot as pl
# Create random data between 0 and 20.
a = np.random.rand(10, 10)*20
b = np.random.rand(10, 10)*20
# Mask all values less than 9.
a = np.ma.array(a, mask=a < 9.)
b = np.ma.array(b, mask=b < 9.)
# Plot a, b and the sum of both.
pl.subplot(131)
pl.pcolormesh(a, cmap=pl.cm.hot)
pl.subplot(132)
pl.pcolormesh(b, cmap=pl.cm.hot)
pl.subplot(133)
pl.pcolormesh(a+b, cmap=pl.cm.hot)
pl.show()
关于python - Matplotlib:绘制数组中的 nan 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37774617/