Matplotlib. Не удается изменить тики на второй оси y

#python #matplotlib

#python #matplotlib

Вопрос:

Я рисую график с двумя осями y, но я не могу найти способ изменить отметки на второй оси y. Я не получаю ошибок, но галочки справа вообще не меняются.

 import matplotlib.pyplot as plt

x = [x for x in range(11)]
y1 = [x for x in range(0, 101, 10)]
y2 = [x for x in range(20, 31, 1)]

fig, ax1 = plt.subplots()
ax2 = plt.twinx()

ax1.plot(x, y1)
ax2.plot(x, y2)

for tick in ax1.yaxis.get_major_ticks():
        tick.label.set_fontsize(30)
        tick.label.set_color('purple')
        
for tick in ax2.yaxis.get_major_ticks():
        tick.label.set_fontsize(30)
        tick.label.set_color('green')
        
plt.show()
  

Ответ №1:

Я не знаю, почему это не работает. Если вы хотите сохранить свои циклы (таким образом, сохранив исходные местоположения тиков), вы можете получить доступ к меткам напрямую:

 for label in ax2.yaxis.get_majorticklabels():
    label.set_size(30)
    label.set_color('green')
  

введите описание изображения здесь

Если вы хотите использовать механизм matplotlib для определения его интервала / расположения тиков на основе вашего нового формата, вы можете вообще избежать циклов с помощью:

 ax1.tick_params(axis='y', labelcolor='purple', labelsize=30)
ax2.tick_params(axis='y', labelcolor='green', labelsize=30)
  

введите описание изображения здесь