Форматирование списка раз в 24-часовой формат для использования в качестве меток xtick

1

У меня есть график matplotlib, со значениями у и временами х. Тем не менее, количество ярлыков xtick варьируется от 0 до 23, что, хотя и правильно, я бы хотел, чтобы они были отформатированы как 0:00, 1:00 и т.д.

Я читаю данные из файла csv и извлекаю значение часа, выполнив: hour_counts = songs['hour'].value_counts().sort_index() которая возвращает список следующим образом:

0 574 1 399 2 225 3 135 23 734

Затем строится график и отображаются значки, выполняя:

ax = hour_counts.plot() ax.set_xticks(hour_counts.index) ax.set_xticklabels(hour_counts.index, rotation=45)

Это создает график как https://imgur.com/a/Dz541gD

Я хотел бы отформатировать xticks так, чтобы они выглядели как время, 0:00, 1:00, 2:00 вплоть до 23:00.

Спасибо

  • 0
    Вы можете попробовать использовать ax.xaxis.set_minor_formatter(dates.DateFormatter('%H:%M')) . Для получения дополнительной информации, посмотрите здесь
  • 0
    К сожалению, это не работает, я думаю, потому что я строю индекс списка, это явно не тип данных datetime
Теги:
pandas
matplotlib

1 ответ

1
Лучший ответ

Один простой и легкий взлом, который вы можете попробовать, по крайней мере, для сюжета, который вы разместили, заключается в следующем

ticklabels = ['%s:00' %i for i in range(24)]
ax.set_xticklabels(ticklabels, rotation=45)

Можно также использовать format для форматирования меток в соответствии с вашими потребностями.

  • 1
    Сработало отлично, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню