rub*_*ens 5 python numpy matplotlib boxplot
我如何只能绘制MaskedArray的非遮罩值?我认为这会自动发生,boxplot(ma)但这似乎是封装非掩码数组.
我认为你是对的 - plt.boxplot如果发送了一个蒙面数组,则忽略该掩码.所以看起来你必须boxplot通过仅发送未被屏蔽的值来提供额外的帮助.由于数组的每一行可能具有不同数量的未屏蔽值,因此您将无法使用numpy数组.你必须形成一个Python矢量序列:
z = [[y for y in row if y] for row in x.T]
Run Code Online (Sandbox Code Playgroud)
例如:
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()
Run Code Online (Sandbox Code Playgroud)

上图中,第一个子图显示了x(忽略掩码)中所有数据的箱线图,第二个子图显示了仅未被屏蔽的那些值的箱线图.
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |