web-dev-qa-db-ja.com

右側のmatplotlib y軸ラベル

プロットの右側にy軸ラベルを付ける簡単な方法はありますか?これは、ax.yaxis.tick_right()を使用して目盛りラベルに対して実行できることを知っていますが、軸ラベルに対しても実行できるかどうかを知りたいと思います。

思いついたアイデアの1つは、

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

ただし、y軸の範囲を保持しながら、すべてのラベル(目盛りと軸のラベル)を右側に配置するという望ましい効果はありません。つまり、すべてのy軸ラベルを左から右に移動する方法が必要です。

59
Thucydides411

あなたはそれを行うことができるように見えます:

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

例については here を参照してください。

90
Gerrat

matplotlibで指定された例に従い、subplots()関数を使用せずに軸の両側にラベルを付けてFigureを作成したい場合、ここに私の解決策があります。

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

9