Подтвердить что ты не робот

Matplotlib y-axis label на правой стороне

Есть ли простой способ поместить метку оси y в правую часть графика? Я знаю, что это можно сделать для ярлыков меток с помощью ax.yaxis.tick_right(), но я хотел бы знать, можно ли это сделать и для метки оси.

Одна идея, которая приходила в голову, заключалась в использовании

ax.yaxis.tick_right()
ax2 = ax.twinx()
ax2.set_ylabel('foo')

Однако это не дает желаемого эффекта размещения всех меток (метки меток и осей) с правой стороны, сохраняя при этом степень оси y. Короче говоря, мне хотелось бы переместить все метки оси Y слева направо.

4b9b3361

Ответ 1

Похоже, вы можете сделать это с:

ax.yaxis.set_label_position("right")
ax.yaxis.tick_right()

Смотрите здесь для примера.

Ответ 2

Если вы хотите следовать примеру, приведенному в matplotlib, и создать фигуру с метками на обеих сторонах осей, но без использования функции subplots(), вот мое решение:

from matplotlib import pyplot as plt
import numpy as np

ax1 = plt.plot()
t = np.arange(0.01, 10.0, 0.01)
s1 = np.exp(t)
plt.plot(t,s1,'b-')
plt.xlabel('t (s)')
plt.ylabel('exp',color='b')

ax2 = ax1.twinx()
s2 = np.sin(2*np.pi*t)
ax2.plot(t, s2, 'r.')
plt.ylabel('sin', color='r')
plt.show()