假设我有一个数组
data = np.array([(1,2,3),
(2,3,4),
(1,2,5)])
通常,我可以简单地输入
plot = plt.boxplot(data)
并为我创建数据,就像一天一样轻松。
但是,当我拥有的是数据出现的次数时,该怎么办?
在这种情况下,我有以下数组
occur = np.array([2,1,0,0,0],[0,2,1,0,0],[0,0,1,1,1])
# 1,2,3,4,5 1,2,3,4,5 1,2,3,4,5
#first columns have "1" appear 2 times, "2" appear 1 time, "3" appear 0 times...
#second columns have "1" appear 0 times, "2" appear 2 times, "3" appear 1 time ...
我尝试了plt.boxplot(weights = data),但显然没有用
答案 0 :(得分:1)
不确定是否可以操纵boxplot参数以使其更快,但是从bincount(这就是您所拥有的)进行重构可能非常简单。
occur = np.column_stack(np.repeat(np.arange(x.size)+1, x) for x in occur)
输出此数组以发生:
array([[1, 2, 3],
[1, 2, 4],
[2, 3, 5]])
然后
plt.boxplot(occur)
给出所需的箱线图。