У мене простий графік ліній і потрібно перемістити тики по осі 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
.
Відповідь 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()
У результаті виходить сюжет із кліщами з обох боків, але з тикетками справа.
Просто у випадку, коли хтось запитує (як я це робив), це також можливо, коли використовується 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")