Даты янляются одним из хитрых типов данных в языках программирования, которые требуют специальной обработки.
При построении графиков также хочется чтобы график был читаемым и в нем не было избыточности и, как следствие, наложение подписей осей друг на друга.
Чтобы вывести даты этим способом по оси абсцисс в matplotlib приходится "шаманить" - т.е. вызывать дополнительные функции.
В простом случае надо получить доступ к осям - это делает метод gca() или Get Current Axes.
Далее получаем доступ к оси абсцисс xaxis и уже у нее вызываем методы настройки. В моем случае, поскольку данные по короновирусу ограничены только этим годом, то нет смысл выводить год и на нем можно сократить.
Код:
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
...
# определяем форматирование - день и месяц через тире
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter("%d-%m"))
# ставим интервал в 15 дней между штрихами ( ticks ) в 15 дней
plt.gca().xaxis.set_major_locator(mdates.DayLocator(interval=15))
# применяем форматирование
plt.gcf().autofmt_xdate()
После этого график по оси абсцисс подписан как нам надо - только месяц и день.
No comments:
Post a Comment