Метки тиковой оси X слишком плотные при рисовании графиков с помощью matplotlib - PullRequest
0 голосов
/ 20 февраля 2019

Я рисую графики matplotlib, и моя ось x состоит из строк в формате ГГГГММ года и месяца, например 201901 для января 2019 года.

Моя проблема в том, что некоторые данные охватывают длительный периодвремя, и это делает метки тика оси X настолько плотными, что они накапливаются друг на друге, и они становятся нечитаемыми.

Я попытался уменьшить шрифт, и я повернул метки на 90 градусов, что очень помогло, но это все ещенедостаточно для некоторых моих данных.

Вот пример одной из моих осей x, которая выглядит нормально:

x-axis that looks fine

ИВот пример оси X, которая слишком плотная, потому что данные охватывают большой промежуток времени:

x-axis labels that are too dense

Поэтому я хочу, чтобы matplotlib пропустилпечать нескольких меток, когда метки начинают накапливаться друг на друге.Например, напечатайте этикетку за январь, пропустите печать этикеток за февраль, март, апрель и май, напечатайте этикетку за июнь и пропустите печать этикеток за июль, август и т. Д. Но я не знаю, как это сделать?

Или есть другие способы решения этой проблемы?

1 Ответ

0 голосов
/ 20 февраля 2019

Быстрое грязное решение будет следующим:

ax.set_xticks(ax.get_xticks()[::2])

Это будет отображаться только каждую секунду xtick.Если вы хотите отображать только каждый n-й тик, вы должны использовать

ax.set_xticks(ax.get_xticks()[::n])

Если у вас нет дескриптора на ax, вы можете получить его как ax = plt.gca().

В качестве альтернативы, вы можете указать количество xticks для использования:

plt.locator_params(axis='x', nbins=10)

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