matplotlib 图右侧的Y轴刻度

des4xlb0  于 2023-05-18  发布在  其他
关注(0)|答案(5)|浏览(137)

我有一个简单的线图,需要将y轴刻度从图的(默认)左侧移动到右侧。有什么想法吗?

ig9co6j1

ig9co6j11#

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

oxf4rvwz

oxf4rvwz2#

对于右侧标签,使用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()
wgmfuz8q

wgmfuz8q3#

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

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

bjp0bcyl

bjp0bcyl4#

如果有人问(就像我一样),这也是可能的,当一个人使用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()

它将显示:

s8vozzvw

s8vozzvw5#

使用子图,如果您共享y轴(即sharey=True),在创建图之前,请尝试:
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = Trueplt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
From:Matplotlib gallery

相关问题