Вот график, который я генерирую в настоящее время со связанным кодом:

values = [2240, 1990, 1460, 1600, 1440, 2240, 100, 5840]
values_count = [0] * 23
#there is a for loop with "if" statements counting up the
# data that lies within 2 bounds - left code out to minimize.
x_axis = np.arange(-250, 5251, 250)
barlist = plt.bar(x_axis, values_count, edgecolor = 'green', align = 'center', width = 290, zorder = 2)
ax = plt.gca()
ax.yaxis.grid(linestyle = '--', linewidth = 1, alpha = 0.2, zorder = -1)
plt.xticks(x_axis , ['', '0', '', '500', '', '1000', '', '1500', '', '2000', '', '2500',
'', '3000', '', '3500', '', '4000', '', '4500', '', '5000'])
plt.show()
Что должен делать код:
Он считывает список значений, затем определяет, где находятся значения (т. Е. Между 1500 и 2000), затем добавляет единицу к values_count
в соответствующем индексе.Затем он строит гистограмму, показывающую количество значений, лежащих между двумя значениями.Код делает это, но проблема заключается в тиках оси X.
Проблема:
Есть тики, которые расположены непосредственно под полосой (то есть ниже0, от 0 до 500, от 500 до 1000 и т. Д. - лучший пример - от 1000 до 2500).Эти тики я хотел бы удалить, оставляя тики между барами (т. Е. Тики с метками 0, 500, 1000 и т. Д.).Для ясности я обвел галочки, которые должны быть удалены:

Что я пробовал:
plt.xticks(x_axis)
: помечает ось X от -250 до 5250, что обеспечивает перекрытие меток.Добавляя в список (['', 0, '', '500', ..., '', '5000', '']
) в качестве второго аргумента, он удаляет все остальные метки, делая ось X графика чистой, как указано выше.
plticker.MultipleLocator()
: это не решило мою проблему сотметки убираются, но, скорее, добавляются меньше, когда я ввел значение для этого.
plticker.FixedLocator()
: это абсолютно ничего не сделало, даже после того, как с ним связались.