добавление дополнительных осевых тиков с использованием matplotlib

У меня есть простой код

plt.plot(x,y) plt.show() 

Я хочу добавить дополнительные тики на оси x в дополнение к текущим, скажем, в

 extraticks=[2.1, 3, 7.6] 

Как вы видите, у меня нет шаблона для тиков, поэтому я не хочу увеличивать частоту тиков для всей оси; просто сохраните оригинальные и добавьте эти дополнения …

Это вообще возможно?

С уважением

2 Solutions collect form web for “добавление дополнительных осевых тиков с использованием matplotlib”

Да, вы можете попробовать что-то вроде:

 plt.xticks(list(plt.xticks()[0]) + extraticks) 

Используемая функция – xticks() . При вызове без аргументов он возвращает текущие тики. Вызывая его с помощью аргументов, вы можете установить позиции тика и, при необходимости, метки.

Ради полноты я хотел бы дать версию OO отличного ответа @ Lev-Levitsky:

 lines = plt.plot(x,y) ax = lines[0].axes ax.set_xticks(list(ax.get_xticks()) + extraticks) 

Здесь мы используем объект Axes извлеченный из последовательности Lines2D , возвращаемой Lines2D . Обычно, если вы используете интерфейс OO, у вас уже будет ссылка на Axes спереди, и вы будете называть plot на этом, а не на pyplot .

Углубление

Если по какой-то причине вы изменили свои пределы оси (например, путем программного масштабирования части данных), вам необходимо будет восстановить их после этой операции:

 lim = ax.get_xlim() ax.set_xticks(list(ax.get_xticks()) + extraticks) ax.set_xlim(lim) 

В противном случае график заставит ось x показать все доступные тики на оси.

Python - лучший язык программирования в мире.