Вопрос по python – Тики Y-оси Python Matplotlib на правой стороне графика

94

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

Ваш Ответ

4   ответа
85

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()
160

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

Error: User Rate Limit Exceededsharey=True.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
48

но имеет побочный эффект удаления тиков с левой стороны осей. Чтобы это исправить, следите за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

13

когда кто-то спрашивает (как я это сделал), это также возможно, когда кто-то использует 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

Error: User Rate Limit Exceededplt.command ?
Error: User Rate Limit Exceededax.tick_params(axis='y', which='both', labelleft='off', labelright='on')Error: User Rate Limit Exceededylabel

Похожие вопросы