5
我該如何boxplot只有maskedarray的非屏蔽值?我想這會自動發生boxplot(ma)
,但這似乎boxplot非屏蔽數組。Boxplotting Masked Arrays
我該如何boxplot只有maskedarray的非屏蔽值?我想這會自動發生boxplot(ma)
,但這似乎boxplot非屏蔽數組。Boxplotting Masked Arrays
我認爲你是對的 - 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
箱線圖(忽略掩碼),第二個子圖顯示只有那些未被屏蔽的值的箱形圖。
毫米,如果我不屏蔽陣列中的柱,但是例如'ma.masked_equal(0)',這使得建議的方式有點複雜...... – 2011-05-17 12:00:47
@rubae:那麼不是所有的行都有相同數量的值? – unutbu 2011-05-17 12:17:31
我有6個np.ma的(N,M)大小,所以我想要這些數組的6個doxplot,其中所有值等於零都被'np.nan'屏蔽了,並且whih是隨機遍佈在陣列中的...(我不想在我的盒子裏) – 2011-05-17 12:22:27