У меня есть простой линейный график, и мне нужно переместить галочки оси Y с левой (по умолчанию) стороны графика на правую. Есть мысли, как это сделать?
У меня есть простой линейный график, и мне нужно переместить галочки оси Y с левой (по умолчанию) стороны графика на правую. Есть мысли, как это сделать?
Ответы:
Использовать 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()
sharey=True
.
Ответ Хоакина работает, но имеет побочный эффект удаления галочки с левой стороны осей. Чтобы исправить это, 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()
Результатом является график с отметками по обеим сторонам, но с отметками справа.
На всякий случай кто-то спросит (как я), это также возможно при использовании 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()
Он покажет это:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
. Но это не сдвигаетylabel
plt.gca()
для получения текущего объекта оси. Поэтому вы должны использовать:plt.gca().yaxis.set_label_position("right")