Первое, что я вижу, это то, что в вашем массиве значений точки данных не разделяются запятыми.
Во-вторых, ваши значения находятся за пределами ваших корзин. Все ваши значения исчисляются тысячами, а диапазон ваших бинов составляет от 0 до 70.
Вот моя отредактированная версия вашего кода (для ясности я включил свои операторы импорта). Я изменил значения, чтобы они находились в пределах вашего диапазона:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
value = [7, 8, 15, 45, 50, 80]
bin = np.arange(0,70,10)
ax.hist(value, bins=bin)
plt.grid(True)
plt.show()
В результате я получаю это изображение , которое иллюстрирует, что происходит. Точка 80 данных находится за пределами диапазона корзины и, следовательно, вообще не отображается, как и точки данных, которые у вас были изначально. Кроме этого, все точки данных показаны на гистограмме.
Надеюсь, это поможет!
Редактировать: в комментарии к этому ответу вы сказали, что хотите, чтобы он был горизонтальным, а не вертикальным. Вы добавляете orientation="horizontal"
к вашему выражению ax.hist в качестве аргумента. Новый код выглядит так:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
value = [7, 8, 15, 45, 50, 80]
bin = np.arange(0,70,10)
ax.hist(value, bins=bin, orientation="horizontal")
plt.grid(True)
plt.show()
Ваш график теперь должен выглядеть так: это .