Python Matplotlib Y轴在图的右侧滴答


Answers:


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
lukecampbell

有趣的是,即使应通过sharey = True抑制它们,它也会使刻度线名称重新出现
endolith

而且,如果我想要左右刻度线和标签怎么办?
AstroFloyd

1
我没有弄清楚为什么,但是如果您有的子图,这会中断sharey=True
史蒂文·豪威尔

使刻度线出现在左侧右侧的命令是什么?谢谢!
tommy.carstensen

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

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

结果是在两边都带有刻度线的图,但在右边的刻度线标签。

在此处输入图片说明


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
Eric

1
好吧,您始终可以使用它plt.gca()来获取当前轴对象。因此,您将使用:plt.gca().yaxis.set_label_position("right")
sannaj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.