MaskedArrayのマスクされていない値のみを箱ひげ図にするにはどうすればよいですか?これはによって自動的に発生すると思いましたboxplot(ma)
が、これはマスクされていない配列を箱ひげ図で示しているようです。
2768 次
1 に答える
9
私はあなたが正しいと思います-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
ひげ図を示し、2 番目のサブプロットはマスクされていない値のみの箱ひげ図を示しています。
于 2011-05-17T11:37:29.927 に答える