Python Matplotlib-包含数据出现次数的方框图?

Python Matplotlib-包含数据出现次数的方框图?,python,matplotlib,boxplot,Python,Matplotlib,Boxplot,假设我有一个数组 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]) #

假设我有一个数组

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),但显然它不起作用

不确定是否可以操纵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]])
那么


提供所需的箱线图。

是的,从箱数重建是解决方案。也可以根据需要使用np.full或np.repeat等方法
plt.boxplot(occur)