Непоследовательная шкала при построении дат - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть список дат в формате matplotlib.dates.date2num и список целых чисел. Я пытаюсь построить линейный график с датой на оси X. Но matplotlib не всегда правильно отображает даты при использовании Python 3. Однако я заметил, что это не проблема при использовании Python 2.

Это мой код:

fig, ax = plt.subplots()
plt.title(constants.chart_title)
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis ')
fig.autofmt_xdate()
plt.plot_date(;ist_of_formatted_dates, list_of_integers)
plt.savefig('chart.png')

А вот пример того, что один и тот же скрипт выводит, используя 2 разные версии python:

Python 2,7

Python 3,6

При использовании Python 3 кажется, что matplotlib отображает все нечетные дни, и проблема в том, что в марте 31 день, поэтому 03-31 и 04-01 разделены на 1 день, даже если все остальные нечетные дни с интервалом 2 дня.

Есть ли обходной путь к этому?

1 Ответ

0 голосов
/ 15 апреля 2019

Благодаря Jody Klymak я смог решить эту проблему.Я добавил несколько строк кода перед сохранением диаграммы:

plt.xticks()
locator = mpd.AutoDateLocator(interval_multiples=False)
ax.xaxis.set_major_locator(locator)

matplotlib изменил некоторые kwargs по умолчанию для Python 3, поэтому последние 2 строки кода просто возвращают его старому поведению.И plt.xticks() обеспечивает правильное форматирование дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...