Python Matplotlib Y-Axis тикает на правой стороне участка

У меня есть простой график линии и нужно переместить галочки оси y из (по умолчанию) левой стороны графика в правую сторону. Любые мысли о том, как это сделать?

Ответ 1

Используйте ax.yaxis.tick_right()

например:

from matplotlib import pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
plt.plot([2,3,4,5])
plt.show()

enter image description here

Ответ 2

Для правильных меток используйте ax.yaxis.set_label_position("right"), то есть:

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.plot([2,3,4,5])
ax.set_xlabel("$x$ /mm")
ax.set_ylabel("$y$ /mm")
plt.show()

Ответ 3

joaquin отвечает, но имеет побочный эффект удаления тиков с левой стороны осей. Чтобы исправить это, выполните tick_right() с помощью вызова set_ticks_position('both'). Пересмотренный пример:

from matplotlib import pyplot as plt

f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.plot([2,3,4,5])
plt.show()

В результате получается график с тиками с обеих сторон, но отметьте метки справа.

enter image description here

Ответ 4

Просто случай, когда кто-то спрашивает (как и я), это также возможно, если вы используете subplot2grid. Например:

import matplotlib.pyplot as plt
plt.subplot2grid((3,2), (0,1), rowspan=3)
plt.plot([2,3,4,5])
plt.tick_params(axis='y', which='both', labelleft='off', labelright='on')
plt.show()

Он покажет это:

enter image description here