我在Mac上使用Python 3.4和Matplotlib 2.0.0。困扰我的问题是如果使用tight_layout(),ax.set_position()函数似乎被忽略。 在set_position之后放置subplots_adjust()时会观察到类似的效果。(参见代码注释)。
import matplotlib.pyplot as plt
import numpy.random as random
data = random.randn(255,255)
plt.close()
fig,axes = plt.subplots(2,1)
ax=axes[0]
im=ax.imshow(data, aspect='auto')
cb=plt.colorbar(im, ax=ax)
ax.set_xlabel('X data')
ax.set_ylabel('Y data')
pos0 = ax.get_position()
ax=axes[1]
pos1 = ax.get_position()
ax.set_position([pos1.x0, pos1.y0, pos0.width, pos1.height])
ax.plot([0,1])
ax.set_xlabel('Big')
ax.set_ylabel('Small')
plt.tight_layout() # put plt.subplots_adjust(left=0.2) here produces similar results
plt.show()
我认为这是一个错误,并在github上向matplotlib报告。但到目前为止没有回复或其他什么。我在某处错了吗?