我正在使用matplotlib绘制一系列热图。没有共享的y轴,它可以正常工作。当我尝试分享y轴时,我遇到了一个问题。 x轴限制似乎受到严重影响。
考虑以下MWE:
import matplotlib
print matplotlib.__version__ # prints "1.4.2"
import matplotlib.pyplot as plt
data = [[1,2,3],
[4,5,6],
[7,8,9],
[10,11,12]]
nrows, ncols = 1, 4
fig, axes = plt.subplots(nrows, ncols, sharey=True)
for j in range(ncols):
xs = axes[j]
# seems to have no impact when sharey=True
#xs.set_xlim(-0.5, 2.5)
xs.imshow(data, interpolation='none')
plt.show()
输出错误如下:
然而,只需将sharey=True
更改为sharey=False
即可得到正确的输出(除了我希望y轴在当前共享时,现在它不会被分享):< / p>
有没有办法解决这个问题?
答案 0 :(得分:1)
从here得到答案:
ax.set_adjustable('box-forced')
所以:
for j in range(ncols):
xs = axes[j]
xs.set_adjustable('box-forced')
xs.imshow(data, interpolation='none')
这似乎是有意的行为,您需要指定这一点以协调imshow()在单个绘图上的行为与其在子绘图上的行为之间的差异。