Python Matplotlib Y轴在绘图的右侧打勾

我有一个简单的线条图,需要将y轴刻度从图的左侧(默认)移动到右侧。 任何想法如何做到这一点?

使用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") ,即:

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

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

在这里输入图像说明

只是有人问(像我这样),这也是可能的时候使用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() 

它会显示这个:

在这里输入图像说明