如何仅对 MaskedArray 的非屏蔽值进行箱线图?我以为这会自动发生boxplot(ma)
但这似乎是对非屏蔽数组进行箱线图。
我想你是对的 -plt.boxplot
如果发送掩码数组,则忽略掩码。
所以看起来你必须付出boxplot
通过仅发送未屏蔽的值来提供一些额外的帮助。由于数组的每一行可能有不同数量的未屏蔽值,因此您将无法使用 numpy 数组。您必须形成一个 Python 向量序列:
z = [[y for y in row if y] for row in x.T]
例如:
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure()
N=20
M=10
x = np.random.random((M,N))
mask=np.random.random_integers(0,1,N*M).reshape((M,N))
x = np.ma.array(x,mask=mask)
ax1=fig.add_subplot(2,1,1)
ax1.boxplot(x)
z = [[y for y in row if y] for row in x.T]
ax2=fig.add_subplot(2,1,2)
ax2.boxplot(z)
plt.show()
上面的第一个子图显示了所有数据的箱线图x
(忽略掩码),第二个子图仅显示那些未被掩码的值的箱线图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)