我有一个简单的线条图,需要将 y 轴的刻度从(默认)图的左侧移动到右侧。有什么想法吗?
使用 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()
对于正确的标签,使用 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()
Joaquin 的答案有效,但是副作用是从轴的左侧去除虱子。要解决这个问题,请调用 set_ticks_position('both')跟踪 tick_right()。一个修改过的例子:
set_ticks_position('both')
tick_right()
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()
结果是两边都有刻度,但右边有刻度标签。
如果有人问(像我一样) ,这也是可能的,当一个人使用 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()
它将展示这一点:
使用 次要情节,如果你正在共享 y 轴(例如,sharey=True) ,在创建情节之前,尝试:
sharey=True
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True
plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
发信人: Matplotlib 画廊