我有一个简单的线图,需要将 y 轴刻度从图的(默认)左侧移动到右侧。关于如何做到这一点的任何想法?
问问题
141997 次
4 回答
228
采用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()
于 2012-04-27T17:11:42.827 回答
116
对于正确的标签使用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()
于 2012-12-05T12:40:11.537 回答
64
华金的回答有效,但具有从轴左侧移除刻度的副作用。要解决此问题,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()
结果是一个两边都有刻度的图,但右边有刻度标签。
于 2013-12-09T21:39:24.187 回答
27
只是有人问的情况(就像我一样),当使用 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()
它将显示:
于 2014-04-17T17:45:19.490 回答