我目前正在用几个子图绘制(使用 Python-x,y 2.7.2.1),并且我希望将所有 y 标签放在一行中。目前它们不是,因为刻度标签有不同的大小。作为演示,我添加了这个脚本:
import pylab as P
import numpy as N
x = N.linspace(0,2*N.pi,10000)
y1 = N.sin(x)
y2 = N.cos(x)*10000
P.figure()
ax1 = P.subplot(211)
P.plot(x,y1,"k-")
y1 = P.ylabel("$\\sin{(x)}$")
P.xlim((0,2*N.pi))
ax2 = P.subplot(212)
P.plot(x,y2,"k--")
y2 = P.ylabel("$\\cos{(x)}\\cdot{}10^4$")
P.xlim((0,2*N.pi))
P.show()
结果看起来像这样,请注意相对于彼此移动的标签:
我试图通过使用设置标签位置
(x,y) = y2.get_position()
ax1.yaxis.set_label_coords(x,y)
但显然他们使用不同的坐标,因为 set_label_coords 需要相对坐标,而 get_position() 似乎会产生像素或其他东西。绝望尝试使用
y1.set_x(x); y1.set_y(y)
没有任何效果。所以我对自己说:请教专家——我来了。谁能告诉我如何移动标签,使它们彼此对齐并且看起来像预期的那样棒?
我期待着你的回答。