0

假设我有一个数组

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) 但显然它没有用

4

1 回答 1

1

不确定您是否可以操纵箱线图参数以使其更快,但从 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)

给出你想要的箱线图。

于 2018-12-13T16:17:13.610 回答