Во-первых, этот ответ не работает для меня, но проблема, по сути, та же. Мои данные x
- это список в диапазоне [-2: 18], помеченный как [A: U]. Последний бин (17 или T) фактически накапливает количество значений 17-T и 18-U, показывая, что bin 18-U пуст.
Мой код выглядит так (эстетика была опущена, x
был прочитан из .csv):
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=figsize)
Labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U']
bins = len(Labels)
ax.hist(x, bins=bins, density=False, histtype='step', color='grey', linewidth=2)
ax.set_xticklabels(Labels)
plt.show()
Результат таков:
Попытка существующего решения, bins = len(Labels) + 1
не имеет никакого значения.