Как изменить интервал оси x с помощью matplotlib, когда используются строки? - PullRequest
0 голосов
/ 18 марта 2020

У меня есть дата-фрейм «дороги», который я строю таким образом (поэтому график с точками):

ax = roads.plot(x='Link_no', y='Road_quality_index', style='o')

Ось X - это номера ссылок в форме строк (это номер участка дороги). Теперь python автоматически пропускает сом из этих строк (9 из 10), чтобы сделать его читаемым. Тем не менее, я хочу показать еще меньше точек оси x, только около 1 из 20.

В Интернете большинство людей используют plt.yticks. Однако, это возможно только тогда, когда вы используете целые числа или числа с плавающей запятой, я верю.

Может ли кто-нибудь помочь нам?

1 Ответ

0 голосов
/ 18 марта 2020

Вы можете получить свои текущие тики, повторно сэмплировать их и установить разреженный список в качестве новых тиков. Ниже в качестве примера я проверяю, проверяя mod (index (a), 20) == 0, что верно для 1 метки в каждых 20 метках.

# current x labels
current_ticks = ax.get_xticklabels()
# resampling every other label, change mod(20) to sample less
custom_ticks = [a.get_text() for a in current_ticks if current_ticks.index(a)%20==0] 
# set as new labels
ax.set_xticks(custom_ticks)
ax.set_xticklabels(custom_ticks)
...