Я пытаюсь построить простую гистограмму. Я обработал свои данные в виде списка: X = [30, 2728, 2894, 2582, 2309, 2396, 2491, 2453, 2382, 2325, 2225, 2359, 2138 ...]Гистограмма Matplotlib
где каждое положение соответствует к числу элементов с этим значением (так что 30 элементов для 0, 2728 для 1 и т. д.) Если я построю этот список в виде гистограммы, я получаю желаемый результат, но разрешение слишком велико (т.е. каждое значение является ведром). То, что я хочу сделать, это объединить ведра, чтобы я мог получить как мои значения X: 0, 1-10, 10-50, 50-150, 150-500, так и Y - сумму элементов в нужном диапазоне, поэтому для 0 У меня будет значение y 30, для 1-10 я буду иметь сумму суммы (2728, 2894, 2582, 2309, 2396, 2491, 2453, 2382, 2325, 2225) и т. Д.
Я пробовал так:
plt.hist(X,bins=[0,1,10])
, но я не получаю желаемый результат, я ожидаю получить один бар 0-1 с у = 30 и второй строка 1-10 с у = 24785, но это не то, что он строит.
Каков наилучший способ для этого?
Я думаю, что это правильный подход, но plot_bin [0. 0. 1. 0. 0. 12.], в то время как это должно быть [30,24785,4497 , 0,0,0] (поскольку сумма значений между индексом 0 и индексом 1 равна 30, сумма значений между индексом 1 и индексом 10 равна 24785, а сумма значений между индексом 10 и индексом 50 равна 4497, и нет элементов в массиве с индексом> 12, чтобы оставшиеся ведра были пустыми). Я думаю, что могу либо вручную переупаковать мои данные, либо использовать np умным способом (например, ваш ответ подсказывает). –
Ах, я вижу, что я неправильно понял ваш первоначальный вопрос. Где вы получаете 24785 и 4497? В целом, я думаю, вы можете использовать 'np', чтобы получить данные так, как вы этого хотите. – Julien
Я суммирую все значения по индексу 1:10 (2728, 2894, 2582, 2309, 2396, 2491, 2453, 2382, 2325, 2225), вот как я получаю 24785. Затем я суммирую индекс 10:50 (2359, 2138) который дает мне 4497. –