6

MaskedArrayのマスクされていない値のみを箱ひげ図にするにはどうすればよいですか?これはによって自動的に発生すると思いましたboxplot(ma)が、これはマスクされていない配列を箱ひげ図で示しているようです。

4

1 に答える 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 に答える