我有一个简单的线图,需要将y轴刻度从图的(默认)左侧移动到右侧。有什么想法吗?
ig9co6j11#
使用ax.yaxis.tick_right()例如:
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()
oxf4rvwz2#
对于右侧标签,使用ax.yaxis.set_label_position("right"),即:
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()
wgmfuz8q3#
joaquin的回答是可行的,但有一个副作用,就是从轴的左侧去除刻度。要解决这个问题,请在tick_right()之后调用set_ticks_position('both')。一个修正的例子:
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()
结果是一个两边都有刻度线的图,但右边有刻度线标签。
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()
它将显示:
s8vozzvw5#
使用子图,如果您共享y轴(即sharey=True),在创建图之前,请尝试:plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = Trueplt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = FalseFrom:Matplotlib gallery
sharey=True
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True
plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
5条答案
按热度按时间ig9co6j11#
使用
ax.yaxis.tick_right()
例如:
oxf4rvwz2#
对于右侧标签,使用
ax.yaxis.set_label_position("right")
,即:wgmfuz8q3#
joaquin的回答是可行的,但有一个副作用,就是从轴的左侧去除刻度。要解决这个问题,请在
tick_right()
之后调用set_ticks_position('both')
。一个修正的例子:结果是一个两边都有刻度线的图,但右边有刻度线标签。
bjp0bcyl4#
如果有人问(就像我一样),这也是可能的,当一个人使用subplot2grid。例如:
它将显示:
s8vozzvw5#
使用子图,如果您共享y轴(即
sharey=True
),在创建图之前,请尝试:plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True
plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
From:Matplotlib gallery