プロットの右側にあるPython Matplotlib Y軸の目盛り


112

単純なラインプロットがあり、y軸の目盛りをプロットの(デフォルト)左側から右側に移動する必要があります。これを行う方法について何か考えはありますか?

回答:


192

使用する 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()

ここに画像の説明を入力してください


偉大な答えは、あなたが1を取得し、私はあなたの写真のために別の1を与えるだろうが、私は唯一の1に制限されています
ルーク・キャンベル

これはダニの名前は、彼らがsharey =真によって抑制されなければならないにもかかわらず、戻ってきて引き起こすことは興味深い
endolith

また、目盛りとラベルを左右両方に配置したい場合はどうすればよいですか?
AstroFloyd 2018

1
理由を分類しませんでしたが、でサブプロットを作成すると、これはうまくいきませんsharey=True
スティーブンC.ハウエル

ダニが左側に表示されるようにするコマンドは何だ右は?ありがとう!
tommy.carstensen 2018

99

正しいラベルにはを使用します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()

57

ホアキンの答えは機能しますが、軸の左側から目盛りを削除するという副作用があります。これを修正するには、への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()

結果は、両側に目盛りがあり、右側に目盛りラベルがあるプロットです。

ここに画像の説明を入力してください


24

誰かが(私がしたように)尋ねた場合だけですが、これは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()

これが表示されます:

ここに画像の説明を入力してください


4
これも動作しax.tick_params(axis='y', which='both', labelleft='off', labelright='on')ます。しかし、それは移動しませんylabel
エリック

1
まあ、いつでもplt.gca()現在のAxesオブジェクトを取得できます。したがって、次のものを使用しますplt.gca().yaxis.set_label_position("right")
。– sannaj
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.