Matplotlib - Ящик с номером вхождения данных? - PullRequest
0 голосов
/ 13 декабря 2018

Предполагая, что у меня есть массив

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= данные) но, очевидно, это не сработало

1 Ответ

0 голосов
/ 13 декабря 2018

Не уверен, что вы можете манипулировать аргументами 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)

дает желаемый участок.

...